将 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);
我正在将 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);