将 PHP 变量传递给 oci_parse 中的 sql 查询

passing PHP variable to sql query in oci_parse

我正在将 PHP 变量传递给 oracle sql 查询。但它没有正确地给我 ORA 错误,如 - 无效字符。我尝试将 varibale 转义为 \'$sid\',这会使错误消失,但查询没有 return 任何内容。 有没有办法将 PHP 变量传递给 oracle query

if(isset($_POST['action']))
{
   $sid = $_POST['action'];
   $stid = oci_parse($conn, 'SELECT emp from table emp='$sid'');
   oci_execute($stid);
}

为简洁起见,我删除了数据库连接部分。

'SELECT emp from table emp=\'$sid\'' 是您传递给 Oracle 的字符串,这就是它不起作用的原因。

您需要使用 oci_bind_by_name 将占位符绑定到 PHP 变量。

示例:

$variable = 42;
$stid = oci_parse($conn, 'SELECT col_name FROM tbl_name WHERE col_name > :num;');
oci_bind_by_name($stid, ":num", $variable);
oci_execute($stid);