Oracle
 sql >> Baza danych >  >> RDS >> Oracle

przeszukaj bazę danych Oracle za pomocą php

Zapytanie musi zostać wykonane przed próbą pobrania wierszy. oci_parse() nie wykonuje podanego zapytania.

Dodaj wywołanie wykonania przed pobraniem:

$success = oci_execute($objParse);

Również w pierwszym bloku twojego if , nie wywołujesz oci_parse() . Jest wywoływany tylko w else . Zmień na wywołanie oci_parse() w każdych warunkach.

Twoje zapytanie jest podatne na wstrzyknięcie SQL, ponieważ łączysz z nim nieprzetworzone dane POST. Aby zapobiec wstrzyknięciu SQL, użyj powiązanych parametrów:

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.sql.SQLException:ORA-01438:

  2. Jak uzyskać powiadomienie o bazie danych do aplikacji C++?

  3. Wywołanie procedury Oracle PL/SQL w Javie przy użyciu CallableStatement z logicznym parametrem IN daje błąd wyroczni PLS-00306:

  4. Po co używać klauzuli JOIN zamiast warunku WHERE?

  5. Jak połączyć operator IN ze stanem LIKE (lub najlepszym sposobem na uzyskanie porównywalnych wyników)