【发布时间】:2013-12-28 15:47:41
【问题描述】:
我终于让我的 CentOS 机器与网络上的 MS SQL 机器对话,但现在我在运行准备好的 PDO 语句时遇到了问题。如果我从末尾删除 :desc 并放入变量名或单词本身,则以下语句有效。 MS SQL 不喜欢这类语句还是我只是遗漏了什么?
$cn = "AARONS";
$result = $pdo->prepare("SELECT * from CommonNameAddress where CommonName = :desc");
$result->execute(array(':desc' => $cn));
编辑
执行一些错误检查后,返回的错误是:
Array (
[0] => 22001
[1] => 0
[2] => [Microsoft][ODBC Driver 11 for SQL Server]String data, right truncation (SQLExecute[0] at /builddir/build/BUILD/php-5.3.3/ext/pdo_odbc/odbc_stmt.c:254)
[3] => 22001
)
【问题讨论】:
-
查看mysql的版本是否支持该功能,我猜是不支持。
-
MS SQL 服务器是 2005 年的,但这应该没关系吧?不是 PHP 脚本完成了所有工作,然后将 SQL Select 发送出去了吗?
-
你说得对,错了
-
我不知道 PDO 内部是如何工作的,但是尝试用其他变量名重命名 'desc' 占位符,然后重试...
-
我把它改成 :name 得到同样的结果
标签: php sql sql-server pdo