Maison  >  Questions et réponses  >  le corps du texte

Passer des variables PHP à une requête SQL dans oci_parse

Je transmets des variables PHP dans une requête Oracle SQL. Mais il ne le traite pas correctement et me donne des erreurs ORA telles que - caractère invalide. J'ai essayé d'échapper la variable à "$sid", ce qui fait disparaître l'erreur, mais la requête ne renvoie rien. Existe-t-il un moyen de transmettre des variables PHP à une requête Oracle

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

Par souci de concision, j'ai supprimé la partie connexion à la base de données.

P粉107772015P粉107772015320 Il y a quelques jours672

répondre à tous(1)je répondrai

  • P粉262926195

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

    'SELECT emp from table emp='$sid'' est une chaîne que vous transmettez à Oracle exactement telle quelle, c'est pourquoi cela ne fonctionne pas.

    Vous devez utiliser oci_bind_by_name pour lier l'espace réservé à une variable PHP.

    Exemple :

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

    répondre
    0
  • Annulerrépondre