我正在通过PHP和Oracle进行选择,当我得到参数时会发生错误:
警告:oci_execute():ORA-00911:第52行的C:\ xampp \ htdocs \ projeto \ includes \ Read.php中的无效字符警告:oci_fetch_array():ORA-24374:在获取或执行之前定义未完成并在线上获取C:\ xampp \ htdocs \ projeto \ index.php
如果我传递直接参数正常工作,作为注释行,它可以工作。
public function readAnexos($CDLICITACAO) {
try {
//$id = '012103';
$id = $CDLICITACAO;
$sql_query = "SELECT * FROM TBLICITCAO WHERE CDLICITACAO = $id";
$stid = oci_parse($this->db, $sql_query);
oci_execute($stid);
return $stid;
} catch (Exception $e) {
echo $e->getMessage() . "<br>Error na linha: ";
echo "<b>" . $e->getTraceAsString()."</b>";
parent::fechar();
}
}
答案 0 :(得分:1)
使用绑定变量非常重要。这是为了安全和性能。
至少尝试:
$sql_query = "SELECT * FROM TBLICITCAO WHERE CDLICITACAO = :id";
$stid = oci_parse($this->db, $sql_query);
oci_bind_by_name($stid, ":id", $CDLICITACAO);
oci_execute($stid);