sql >> Database teknologi >  >> RDS >> Mysql

mysql_fetch_assoc() fejl, når data i mysql-feltet ændres

Du foretager ikke nogen fejlkontrol i din forespørgsel, så det er ikke underligt, at den går i stykker, hvis forespørgslen mislykkes. Hvordan man tilføjer korrekt fejlkontrol er beskrevet i manualen på mysql_query() eller i denne referencespørgsmål.

Eksempel:

$result = mysql_query($SQL);

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

din forespørgsel går i stykker, fordi du ikke pakker inputtet ind i anførselstegn. Du kan kun undgå* anførselstegn for heltal (som 62ac1175 er ikke). Prøv

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

Den kode, du viser, er også sårbar over for SQL-injektion . Brug den korrekte sanitetsmetode for dit bibliotek (såsom mysql_real_escape_string() for det klassiske mysql-bibliotek, som du bruger), eller skift til PDO og forberedte erklæringer.

I din kode vil dette se sådan ud:I stedet for

$URL_ID = $_GET["a"];

gør

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

* hvis du dog undgår anførselstegn, mysql_real_escape_string() virker ikke, og du skal kontrollere manuelt, om parameteren faktisk er et heltal.




  1. MySQL - Rækker til kolonner

  2. MySQL-søgning for at ignorere bindestreger

  3. Opdatering af Woocommerce-ordrer programmatisk

  4. Mysql - Vælg som ikke bruger indeks