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