Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak używać stringów PHP w zapytaniu mySQL LIKE?

Masz niewłaściwą składnię; nie ma potrzeby umieszczania kropki wewnątrz łańcucha w cudzysłowie. Zamiast tego powinno być bardziej jak

$query = mysql_query("SELECT * FROM table WHERE the_number LIKE '$prefix%'");

Możesz to potwierdzić, drukując ciąg, aby zobaczyć, że okazuje się identyczny z pierwszym przypadkiem.

Oczywiście to niedobry pomysł po prostu wstrzyknąć zmienne do ciągu zapytania w ten sposób ze względu na niebezpieczeństwo wstrzyknięcia SQL. Przynajmniej powinieneś ręcznie zmienić zawartość zmiennej za pomocą mysql_real_escape_string , co mogłoby wyglądać tak:

$sql = sprintf("SELECT * FROM table WHERE the_number LIKE '%s%%'",
               mysql_real_escape_string($prefix));
$query = mysql_query($sql);

Zauważ, że wewnątrz pierwszego argumentu sprintf znak procentu musi zostać podwojony, aby pojawił się raz w wyniku.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy istnieje sposób na „nasłuchiwanie” zdarzenia w bazie danych i aktualizowanie strony w czasie rzeczywistym?

  2. Python łączy się z bazą danych MySQL za pomocą złącza MySQL i przykładu PyMySQL

  3. Zaznaczenie pola wyboru aktualizacji PHP/MySQL do bazy danych

  4. Jak podłączyć zdalną bazę danych MySQL w PHP

  5. Jak sprawdzić, kiedy serwer MySQL/MariaDB został uruchomiony?