【发布时间】:2014-04-17 14:37:25
【问题描述】:
我有这个代码,
$head_mark = $_POST["headmark"];
$id = $_POST["headmark_id"];
$cuttingUpdateParse = oci_parse($conn, "UPDATE FABRICATION SET CUTTING = $cutting_done
WHERE HEAD_MARK = $head_mark AND ID = $id");
不知何故,oracle 不想接受这种代码。我从萤火虫那里得到的消息是
警告:
警告:oci_execute(): ORA-00904: "TEST1": 第 33 行 C:\xampp\htdocs\WeltesInformationCenter\update_bar\process_class.php 中的标识符无效
请帮我提出您的建议,与HEAD_MARK 关联的数据类型是VARCHAR2(15)。我假设我们需要进行某种字符串转换,以便 oracle sql 可以读取它。
【问题讨论】:
-
OCI 扩展支持参数化语句。使用它们。见php.net/manual/function.oci-bind-by-name.php
-
@Daan 这是一些非常糟糕的建议
-
@Phil 确实有效,但我正在使用 OCI PDO,效果很棒。
-
@Phil 参数化语句不适用于 OCI。
-
@ponciste 再说一次,我说完全是垃圾。你告诉我他们是如何“无法正常工作”,我会吃掉我的帽子。在我通过 OCI 扩展使用 PHP 和 Oracle 的 3 年中,我从未有过参数化语句 not work。