【发布时间】:2017-06-14 03:17:33
【问题描述】:
不断收到此警告:
警告:odbc_exec():SQL 错误:[Microsoft][ODBC Microsoft Access Driver] 查询表达式“WHERE id = 86”中的字符串语法错误,SQLExecDirect 中的 SQL 状态 37000
无论我如何编辑此 SQL UPDATE 命令:
$sqlU = "UPDATE inv20152016
SET coNo = '$coNo', cusNo = '$cusNo', rcvTech = '$rcvTech',
rcvLoc = '$rcvLoc', rcvDate = '$rcvDate', rcyTech = '$rcyTech',
rcyLoc = '$rcyLoc', rcyDate = '$rcyDate', rtnTech = '$rtnTech',
rtnLoc = '$rtnLoc', rtnDate = '$rtnDate', cusInvNo = '$cusInvNo',
notes = '$notes
WHERE id = '$rcyId'";
if (!$rs=odbc_exec($conn,$sqlU)) {
echo '<br />Error UPDATE\'ing new record: (' . $sqlU . ')<br />';
goto end;
} else {
echo '<br />RECORD successfully UPDATE\'d in database.recycle20152016<br />'; //$sqlUpdate<br />;
header('location: searchDb.php');
exit();
}
尝试提交 UPDATE 后,我在提交页面上返回以下内容:
更新新记录时出错:(UPDATE inv20152016 SET coNo = '658454', cusNo = '3282', rcvTech = 'Dave Phillips', rcvLoc = 'Sparington', rcvDate = '2016-11-15', rcyTech = 'Melo Hazak', rcyLoc = 'Wildmere', rcyDate = '2016-02-16', rtnTech = 'Dave Phillips', rtnLoc = 'Sparington', rtnDate = '2016-02-25', cusInvNo = '', notes = '其中 id = 86)
似乎所有 UPDATE 变量都符合预期,包括 WHERE 子句中的 id。我一直在使用 vars 之间的引用和间距而没有改变。我已验证 ACCESS 后端中的数据类型与推送更新的数据匹配。
任何想法为什么这个 UPDATE 语句可能不起作用?
【问题讨论】:
-
如果能看懂代码,就可以调试代码了
-
有趣的是,您的
WHERE子句 id 值包含在引号中,但未包含在返回的 SQL 中。 -
很明显这里
notes = '$notes末尾缺少单引号