sql >> Database >  >> RDS >> Mysql

Wanneer PDO-voorbereide zoekopdrachten gebruiken. mysql_real_escape fout

mysql_real_escape_string() om de fout die u ontvangt te verhelpen vereist een open verbinding via mysql_connect() . Omdat je er geen hebt, probeert het verbinding te maken en mislukt het (met een gebruikersnaam van matthew , terwijl uw PDO verbinding maakt met root ). Bovendien kunt u (of mag niet) ) mix en match mysql_real_escape_string() en PDO - het zijn verschillende bibliotheken.

Wat betreft "wanneer" om voorbereide instructies te gebruiken, is de algemene vuistregel wanneer waarden niet hardcoded zijn. Jouw voorbeeld van LIKE '%hotmail%' hoeft niet te worden voorbereid, het is hard gecodeerd en zal nooit veranderen (tenzij je het handmatig bijwerkt, natuurlijk).

Als u een zoekopdracht heeft die een variabele van welke aard dan ook inneemt, zij het gegevens van $_POST of $_GET , of een variabele die een ontwikkelaar 10 regels voor de query heeft gemaakt, moet u een voorbereide instructie gebruiken (of er in ieder geval aan ontsnappen, bekijk BOB::quote ).



  1. hoe de waarde van het selectievakje op te slaan in de mysql-database met behulp van php

  2. Hoe u uw ProxySQL kunt bewaken met Prometheus en ClusterControl

  3. Mysql Table Cron Job afkappen?

  4. PostgreSQL 11:Patchrecensenten voor het partitioneren van patches