sql >> Base de Datos >  >> RDS >> Oracle

buscar base de datos oracle usando php

La consulta debe ejecutarse antes de que pueda intentar obtener filas. oci_parse() no ejecuta la consulta dada.

Agregue la llamada de ejecución antes de buscar:

$success = oci_execute($objParse);

Además, en el primer bloque de tu if , no llamas a oci_parse() . Solo se llama en el else . Cambiar para llamar a oci_parse() para todas las condiciones.

Su consulta es vulnerable a la inyección de SQL porque concatena datos POST sin procesar en ella. Para evitar la inyección SQL, use parámetros enlazados:

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