sql >> Databasteknik >  >> RDS >> Mysql

Varning:mysql_result() förväntar sig att parameter 1 är resurs, boolesk given

Problemet är att mysql_query() returnerar en boolean istället för en resultatresurs. Det finns två anledningar till att detta kan hända:

  1. Du utförde en fråga som returnerar framgång/misslyckande istället för en resultatuppsättning (t.ex. UPDATE )
  2. Din fråga misslyckades

I ditt fall misslyckades frågan. Anledningen till att det misslyckades är att du har undkommit de bakre markeringarna i PHP-strängen där du inte behövde.

Dina rader ser ut så här:

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

När de helt enkelt borde vara detta:

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

Nu några sidoanteckningar:

  • Skriv inte ny kod som använder mysql_* funktioner. De är utfasade och kommer så småningom att tas bort från PHP. Använd MySQLi eller PDO istället (jag rekommenderar personligen PDO, YMMV)
  • Att kapsla databasfunktioner på detta sätt är inte ett särskilt bra sätt att skriva din kod. Det är mycket bättre att kontrollera felen explicit efter varje funktionsanrop.

Till exempel:

$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
  // Handle error here
}
// Now process the result
  • Du bör citera antingen alla identifierare, eller ingen, i dina frågor (helst alla). Att bara citera några gör det svårare att läsa.

T.ex.

SELECT `siteTitle` FROM `siteSettings`



  1. Hur man tar bort ett SQL Server Agent-jobb i Azure Data Studio

  2. Hur man hittar alla begränsningsöverträdelser i en SQL Server-databas

  3. Sortera efter värdeordning i en select-sats i sats i mysql

  4. Ändra datumformatet för den aktuella sessionen i SQL Server