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

Nie można wyszukiwać zapytań w tabeli MySQL

Jest kilka wad w sposobie, w jaki to robisz.

Po pierwsze, nie cytujesz swojej wartości:'$key'

$query = "SELECT * FROM `keys` WHERE `key` = '$key'";

Po drugie, Twój kod jest szeroko otwarty na wstrzykiwanie SQL. Ucieknij od swojej wartości:

$key = mysql_real_escape_string($_GET["key"]);

Powyższy kod to absolutne minimum, które musisz zrobić.
Następną rzeczą jest to, że mysql_ funkcje były przestarzałe przez długi czas i zostały usunięte w PHP 7.

Musisz przełączyć się na mysqli_ lub PDO . Im szybciej się zmienisz, tym lepiej. Przeczytaj to pytanie, aby uzyskać więcej informacji:Jak mogę zapobiec wstrzykiwaniu SQL w PHP?

Oprócz wszystkich powyższych problemów, zaoszczędzisz sobie (a tym bardziej innym, jeśli kiedykolwiek będą musieli przeczytać Twój kod) bólu głowy, jeśli nigdy nie użyjesz słowa kluczowe i słowa zastrzeżone jako nazwy tabel lub kolumn, jak zauważył Jay Blanchard.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać dzisiejsze rekordy w MySQL

  2. Czy koncepcyjnie słuszne jest wykonanie SELECT MAX(id) itp. w celu znalezienia ostatniego wstawionego wiersza?

  3. JAK wybrać min od varchar do int w mysql

  4. Składnia SQL INSERT – wymienione przez DBMS

  5. Jak uciec dosłowny znak procentu, gdy włączona jest opcja NO_BACKSLASH_ESCAPES?