Maison > Questions et réponses > le corps du texte
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粉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);