2013-06-24 115 views
0

我正在为PHP 5.3.1使用mssql pdo,它运行时没有任何问题,突然间我发现,我的所有插入查询在从php PDO运行时失败,如果我回显查询并在其中运行它SQL服务器管理工​​作室,它运行没有任何错误。下面是我的回声查询PHP PDO mssql错误

INSERT INTO contactus(title, first_name, last_name, email) VALUES('Mr', 'Robin', 'Michael', '[email protected]') 
以下

是错误

Array ([0] => HY000 [1] => 10007 [2] => Incorrect syntax near 'Mr'. [10007] (severity 5) [INSERT INTO contactus(title, first_name, last_name, email) VALUES('Mr] [3] => -1 [4] => 5) 

谁能帮我解决这个问题?

+0

和什么是错误? –

+0

@JW웃我更新了我的问题,错误 –

+2

[PDO查询失败,但我看不到任何错误。如何从PDO获取错误消息?](http://stackoverflow.com/a/15990858/285587) –

回答

0

最后,我发现这个问题,这是因为我的机器和我们的Windows服务器上最近的Windows更新。此更新之后mssql pdo驱动程序引发此错误。我从微软网站下载sqlsrv20驱动器和放置在文件
php_pdo_sqlsrv_53_ts_vc6.dll内PHP扩展目录,并在诸如延长= php_pdo_sqlsrv_53_ts_vc6.dll php.ini文件中添加新的扩展,改变了PDO连接

$dbcon = new PDO("sqlsrv:server=$conf->host;Database=$conf->db_name", $conf->db_user, $conf->db_pwd); 

注意:对于wamp服务器用户,还需要在apache中检查php.ini,并且需要在apache下的php.ini文件中添加该扩展名。