"Syntax error or access violation" 使用 PDO 和 SQL 服务器插入日期时
"Syntax error or access violation" when inserting dates using PDO and SQL Server
我正在尝试使用 PHP 中的 PDO 添加两个简单的字符串和一个日期到 SQL 服务器。我目前正在使用以下代码来执行此操作:
$data = array(
'Omschrijving' => 'Mijn mooie omschrijving...',
'Toelichting' => 'Mijn leuke toelichting...'
);
# Insert data
$STH = $DBH->prepare("INSERT INTO memo (Datum, Omschrijving, Toelichting) VALUES (NOW(), :Omschrijving, :Toelichting)");
$STH->execute($data);
它在没有日期的情况下工作得很好,但由于某种原因,当我尝试添加日期时它给了我以下错误:
SQLSTATE[42000]: Syntax error or access violation: 8180 [FreeTDS][SQL Server]Statement(s) could not be prepared. (SQLExecute[8180] at /builddir/build/BUILD/php-5.6.9/ext/pdo_odbc/odbc_stmt.c:254)
有人知道我做错了什么吗?
提前致谢!
Now()
是一个 MySQL 函数。 GetDate()
是 sql-server 的等价物。这是他们关于函数的文档,https://msdn.microsoft.com/en-us/library/ms188383.aspx.
所以提供的代码应该变成:
$data = array(
'Omschrijving' => 'Mijn mooie omschrijving...',
'Toelichting' => 'Mijn leuke toelichting...'
);
# Insert data
$STH = $DBH->prepare("INSERT INTO memo (Datum, Omschrijving, Toelichting) VALUES (GETDATE(), :Omschrijving, :Toelichting)");
$STH->execute($data);
我正在尝试使用 PHP 中的 PDO 添加两个简单的字符串和一个日期到 SQL 服务器。我目前正在使用以下代码来执行此操作:
$data = array(
'Omschrijving' => 'Mijn mooie omschrijving...',
'Toelichting' => 'Mijn leuke toelichting...'
);
# Insert data
$STH = $DBH->prepare("INSERT INTO memo (Datum, Omschrijving, Toelichting) VALUES (NOW(), :Omschrijving, :Toelichting)");
$STH->execute($data);
它在没有日期的情况下工作得很好,但由于某种原因,当我尝试添加日期时它给了我以下错误:
SQLSTATE[42000]: Syntax error or access violation: 8180 [FreeTDS][SQL Server]Statement(s) could not be prepared. (SQLExecute[8180] at /builddir/build/BUILD/php-5.6.9/ext/pdo_odbc/odbc_stmt.c:254)
有人知道我做错了什么吗?
提前致谢!
Now()
是一个 MySQL 函数。 GetDate()
是 sql-server 的等价物。这是他们关于函数的文档,https://msdn.microsoft.com/en-us/library/ms188383.aspx.
所以提供的代码应该变成:
$data = array(
'Omschrijving' => 'Mijn mooie omschrijving...',
'Toelichting' => 'Mijn leuke toelichting...'
);
# Insert data
$STH = $DBH->prepare("INSERT INTO memo (Datum, Omschrijving, Toelichting) VALUES (GETDATE(), :Omschrijving, :Toelichting)");
$STH->execute($data);