sql >> Databasteknik >  >> RDS >> Oracle

sök i Oracle-databas med php

Frågan måste köras innan du kan försöka hämta rader. oci_parse() exekverar inte den givna frågan.

Lägg till köranropet innan du hämtar:

$success = oci_execute($objParse);

Även i det första blocket av din if , du anropar inte oci_parse() . Det anropas bara i else . Ändra till att anropa oci_parse() för alla förhållanden.

Din fråga är sårbar för SQL Injection eftersom du sammanfogar rå POST-data i den. För att förhindra SQL-injektion, använd bundna parametrar:

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



  1. Skapa tabell misslyckas med Foreign Key Constraint är felaktigt formaterad

  2. "Måste deklarera den skalära variabeln"-felet när en tabellvärderad parameter skickas till en parametrerad SQL-sats

  3. Hur redigerar jag en tabell för att aktivera CASCADE DELETE?

  4. Viloläge:Skapa index