Oracle
 sql >> Base de données >  >> RDS >> Oracle

rechercher la base de données oracle en utilisant php

La requête doit être exécutée avant que vous puissiez essayer de récupérer des lignes. oci_parse() n'exécute pas la requête donnée.

Ajoutez l'appel d'exécution avant de récupérer :

$success = oci_execute($objParse);

Aussi, dans le premier bloc de votre if , vous n'appelez pas oci_parse() . Il n'est appelé que dans le else . Changer pour appeler oci_parse() pour toutes les conditions.

Votre requête est vulnérable à l'injection SQL car vous y concaténez des données POST brutes. Pour empêcher l'injection SQL, utilisez des paramètres liés :

$optid = '%' . $_POST['OPRID'] . '%';
$optdec = '%' . $_POST['OPRDEFNDESC']. '%';
$empid = '%' . $_POST['EMPLID']. '%';
$empmail = '%' . $_POST['EMAILID']. '%';

$query ="SELECT  * FROM OPERATOR WHERE OPRID LIKE :optid  
    or OPRDEFNDESC LIKE '%:optdec%' or EMPLID LIKE :empid
    or EMAILID LIKE :empemail "; 

$objParse = oci_parse ($ora_conn, $query);

oci_bind_by_name($objParse, ':optid', $optid);
oci_bind_by_name($objParse, ':optdec', $optdec);
oci_bind_by_name($objParse, ':empid', $empid);
oci_bind_by_name($objParse, ':empemail', $empemail);

$success = oci_execute($objParse);