首頁  >  問答  >  主體

在oci_parse中傳遞PHP變數給SQL查詢

我正在將 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粉107772015P粉107772015371 天前717

全部回覆(1)我來回復

  • P粉262926195

    P粉2629261952023-11-05 11:26:35

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

    回覆
    0
  • 取消回覆