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

时间:2016-02-09 12:51:06

标签: php sql oci

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

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

为简洁起见,我已将其移至数据库连接部分。

1 个答案:

答案 0 :(得分:1)

'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);