sql >> Databáze >  >> RDS >> Mysql

Upozornění:mysql_result() očekává, že parametr 1 bude zdrojem, zadaný booleovský

Problém je v tom, že mysql_query() vrací boolean místo zdroje výsledku. To může nastat ze dvou důvodů:

  1. Provedli jste dotaz, který místo sady výsledků vrací úspěch/neúspěch (např. UPDATE )
  2. Váš dotaz se nezdařil

Ve vašem případě se dotaz nezdařil. Důvod, proč selhal, je ten, že jste unikli zpětným znaménkům v řetězci PHP tam, kde jste to nepotřebovali.

Vaše řádky vypadají takto:

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

Když by prostě měly být toto:

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

Nyní několik poznámek na okraj:

  • Nepište nový kód, který používá mysql_* funkcí. Jsou zastaralé a nakonec budou z PHP odstraněny. Použijte MySQLi nebo CHOP místo toho (osobně doporučuji PDO, YMMV)
  • Vnořování databázových funkcí tímto způsobem není zvlášť dobrý způsob psaní kódu. Je mnohem lepší zkontrolovat chyby explicitně po každém volání funkce.

Například:

$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
  // Handle error here
}
// Now process the result
  • Ve svých dotazech byste měli uvádět buď všechny identifikátory, nebo žádný (nejlépe všechny). Citování pouze některých ztěžuje čtení.

Např.

SELECT `siteTitle` FROM `siteSettings`



  1. místní připojení docker postgres pgadmin

  2. Jak funguje LOG() v MariaDB

  3. Jak převést epochu na časové razítko mySQL v JAVA

  4. Spark Dataframes UPSERT to Postgres Table