Heim  >  Fragen und Antworten  >  Hauptteil

Übergabe von PHP-Variablen an die SQL-Abfrage in oci_parse

Ich übergebe PHP-Variablen an eine Oracle SQL-Abfrage. Aber es behandelt es nicht richtig und gibt mir ORA-Fehler wie „ungültiges Zeichen“. Ich habe versucht, die Variable in „$sid“ zu maskieren, wodurch der Fehler verschwindet, aber die Abfrage gibt nichts zurück. Gibt es eine Möglichkeit, PHP-Variablen an Oracle Query zu übergeben?

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

Der Kürze halber habe ich den Datenbankverbindungsteil entfernt.

P粉107772015P粉107772015320 Tage vor669

Antworte allen(1)Ich werde antworten

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

    Antwort
    0
  • StornierenAntwort