PDO 更新查询不会 运行 但它 运行 在 sql 工作室
PDO update query won't run but it runs on the sql studio
我在 mssql 上将查询从 mysql 转换为 pdo 到 运行,这个查询让我抓狂:
UPDATE cms_users SET lastlogin = GETDATE() WHERE id = '1'
出于某种原因,当我 运行 它通过 PHP 应用程序上的 PDO 但当我 运行 它在 Microsoft SQL Server Management Studio 上时它中断了执行。
这是我运行查询的行:
$this->db_val->query($Query,$this->db_val) or die("Error in Update Query <br> ".$Query."<br>");
当我添加一些属性以通过将此代码放入 PDO 中捕获错误时:
$this->db_val->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
我收到这个错误:
Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]:
[Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid column
name 'UPDATE cms_users SET lastlogin = GETDATE() WHERE id = '1''
不确定哪个是无效的列名,我尝试将列名放在 `` 中,但效果不佳。
更新:
如果这有帮助,我用不同的查询遇到了同样的问题:
DELETE FROM cms_audittrail WHERE transactiondate <= '2015-02-26'
这也适用于 sql 工作室,但不适用于 php 应用程序。我得到:
Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]:
[Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid column
name 'DELETE FROM cms_audittrail WHERE transactiondate <=
'2015-02-26''
从 $this->db_val->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
开始,我假设 $this->db_val
是 PDO
class 的实例或扩展它或包装它的东西。
如果是PDO
的实例,为什么要把$this->db_val
放到PDO::query
方法中呢?
应该是:
$this->db_val->query($Query);
参见PDO::query。
我在 mssql 上将查询从 mysql 转换为 pdo 到 运行,这个查询让我抓狂:
UPDATE cms_users SET lastlogin = GETDATE() WHERE id = '1'
出于某种原因,当我 运行 它通过 PHP 应用程序上的 PDO 但当我 运行 它在 Microsoft SQL Server Management Studio 上时它中断了执行。
这是我运行查询的行:
$this->db_val->query($Query,$this->db_val) or die("Error in Update Query <br> ".$Query."<br>");
当我添加一些属性以通过将此代码放入 PDO 中捕获错误时:
$this->db_val->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
我收到这个错误:
Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid column name 'UPDATE cms_users SET lastlogin = GETDATE() WHERE id = '1''
不确定哪个是无效的列名,我尝试将列名放在 `` 中,但效果不佳。
更新:
如果这有帮助,我用不同的查询遇到了同样的问题:
DELETE FROM cms_audittrail WHERE transactiondate <= '2015-02-26'
这也适用于 sql 工作室,但不适用于 php 应用程序。我得到:
Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid column name 'DELETE FROM cms_audittrail WHERE transactiondate <= '2015-02-26''
从 $this->db_val->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
开始,我假设 $this->db_val
是 PDO
class 的实例或扩展它或包装它的东西。
如果是PDO
的实例,为什么要把$this->db_val
放到PDO::query
方法中呢?
应该是:
$this->db_val->query($Query);
参见PDO::query。