在oci_parse中传递PHP变量给SQL查询
P粉107772015
P粉107772015 2023-11-04 12:38:22
0
1
759

我正在将 PHP 变量传递到 Oracle SQL 查询中。但它没有正确地对待它,给了我 ORA 错误,比如 - 无效字符。我尝试将变量转义为“$sid”,这会使错误消失,但查询不会返回任何内容。 有没有办法将 PHP 变量传递给 oracle 查询

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

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

P粉107772015
P粉107772015

全部回复(1)
P粉262926195

'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);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板