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

Advarsel:mysql_result() forventer, at parameter 1 er ressource, boolesk givet

Problemet er, at mysql_query() returnerer en boolean i stedet for en resultatressource. Der er to grunde til, at dette kan ske:

  1. Du udførte forespørgsel, der returnerer succes/fejl i stedet for et resultatsæt (f.eks. UPDATE )
  2. Din forespørgsel mislykkedes

I dit tilfælde mislykkedes forespørgslen. Grunden til, at det mislykkedes, er, fordi du har undslipet de bagerste markeringer i PHP-strengen, hvor du ikke behøvede det.

Dine linjer ser sådan ud:

$siteTitle = mysql_result(mysql_query("SELECT \`siteTitle\` FROM siteSettings"), 0);

Når de simpelthen skulle være dette:

$siteTitle = mysql_result(mysql_query("SELECT `siteTitle` FROM siteSettings"), 0);

Nu nogle sidebemærkninger:

  • Skriv ikke ny kode, der bruger mysql_* funktioner. De er forældet og vil i sidste ende blive fjernet fra PHP. Brug MySQLi eller PDO i stedet (jeg anbefaler personligt BOB, YMMV)
  • Indlejring af databasefunktioner på denne måde er ikke en særlig god måde at skrive din kode på. Det er meget bedre at kontrollere fejlene eksplicit efter hvert funktionskald.

For eksempel:

$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
  // Handle error here
}
// Now process the result
  • Du bør citere enten alle identifikatorer eller ingen i dine forespørgsler (helst alle). At kun citere nogle gør det sværere at læse.

For eksempel.

SELECT `siteTitle` FROM `siteSettings`



  1. Enkelte citater, dobbelte citater og backticks i MySQL

  2. Sådan øges den tilladte vedhæftede filstørrelse, når du sender e-mail i SQL Server (T-SQL)

  3. Forståelse af SQL Server Always Encrypted

  4. Sådan installeres MySQL 8 på Windows