【发布时间】:2011-04-01 05:38:59
【问题描述】:
我正在运行一个从 Oracle 数据库实例更新表的 PHP 脚本。
首先,我收到一个带有 JSON 的对象:
[{
"lot": "KLMHA17N9N00",
"requestor": "B10078",
"id": "FRESHLOT",
"username": "B26696",
"password": "B26696"
}, {
"lot": "KLMHA17R1800",
"requestor": "B10078",
"id": "FRESHLOT"
}]
(已知这个 JSON 没有问题,因为我在其他项目中一直在使用它。)
然后,我将结果解析到 $rmrid 对象后创建查询:
$db_query = "update ao_lots
set RMRID='".$rmrid->requestor."-".$rmrid->id."'
where ALOT_NUMBER='".$rmrid->lot."';";
如果我回显查询,我会得到:
update ao_lots
set RMRID='B10078-FRESHLOT'
where ALOT_NUMBER='KLMHA17N9N00';
我在这里没有看到任何问题,但是当我执行查询时,我收到了这个警告并且没有任何更新:
警告:oci_execute() [function.oci-execute]:ORA-00911:无效字符
我对该错误代码进行了一些搜索,但无法用找到的信息修复它。
任何建议将不胜感激。
【问题讨论】:
-
请用
DESCRIBE AO_LOTS的输出更新问题 -
如果您可以尝试运行从 SQL*Plus 生成的 sql 并查看是否有相同的错误,这也会有所帮助。如果没有语句错误,您可以回滚更新。
-
我在 SQL*Plus 上运行了该语句,它运行没有问题,我很久以前就这样做了,但我现在想自动化这个过程