所以,这里是查询(从浏览器复制并粘贴,直接从php代码回显。)
INSERT INTO Azioni_report (Chiusa, Data, Descrizione, ID_report, IntEst, Tipo, Responsabile)
VALUES (0, CONVERT(date, '2-12-2014', 105), 'verifica dell''efficacia', 1049, 1, 2, 12)
如果我从我的"测试页面"运行它,它可以正常工作。当我在需要它的页面中运行完全相同的查询时,它会出现此错误:
Array ( [0] => Array ( [0] => 42000 [SQLSTATE] => 42000 [1] => 102 [code] => 102 [2] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near 'efficacia'. [message] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near 'efficacia'. ) ) 1
我正在使用SQL服务器。
答案 0 :(得分:1)
存在一个问题,即您没有正确转义报价。转义是通过在反斜杠\
之前添加它们来完成的:
INSERT INTO Azioni_report
(Chiusa, Data, Descrizione, ID_report, IntEst, Tipo, Responsabile)
VALUES
(0, CONVERT(date, '2-12-2014', 105), 'verifica dell\'\'efficacia', 1049, 1, 2, 12);
要完全避免这种情况,请尝试阅读PDO或mysqli以及PHP中查询的参数化(或绑定):