sql >> Database >  >> RDS >> Mysql

mysql_fetch_assoc() fout wanneer gegevens in mysql-veld worden gewijzigd

U voert geen foutcontrole uit in uw query, dus het is geen wonder dat deze breekt als de query mislukt. Hoe u de juiste foutcontrole toevoegt, wordt beschreven in de handleiding op mysql_query() of in deze referentievraag.

Voorbeeld:

$result = mysql_query($SQL);

if (!$result)
 { trigger_error("mySQL error: ".mysql_error());
   die(); }

uw query wordt afgebroken omdat u de invoer niet tussen aanhalingstekens plaatst. U kunt alleen aanhalingstekens* vermijden voor gehele getallen (die 62ac1175 is niet). Probeer

$SQL = "SELECT * FROM tb_employees WHERE URL_ID = '$URL_ID'";

Ook is de code die u laat zien kwetsbaar voor SQL-injectie . Gebruik de juiste saneringsmethode van uw bibliotheek (zoals mysql_real_escape_string() voor de klassieke mysql-bibliotheek die u gebruikt), of schakel over naar PDO en voorbereide instructies.

In uw code zou dit er als volgt uitzien:In plaats van

$URL_ID = $_GET["a"];

doen

$URL_ID = mysql_real_escape_string($_GET["a"]);

* echter, als u aanhalingstekens vermijdt, mysql_real_escape_string() werkt niet en u moet handmatig controleren of de parameter echt een geheel getal is.




  1. Oplossingen voor SQL Server 2012 &2014 Online Index Rebuild Probleem

  2. Geen MySQL-records keren terug wanneer een bepaalde limiet wordt overschreden?

  3. Som Meerdere rijen Datumverschil Mysql

  4. PDO::__construct():De server heeft een tekenset (255) verzonden die onbekend is bij de client. Alsjeblieft, rapporteer aan de ontwikkelaars