sql >> Database >  >> RDS >> Mysql

Waarschuwing:mysql_result() verwacht dat parameter 1 resource is, boolean gegeven

Het probleem is dat mysql_query() retourneert een boolean in plaats van een resultaatbron. Er zijn twee redenen waarom dit kan gebeuren:

  1. U heeft een zoekopdracht uitgevoerd die succes/mislukt retourneert in plaats van een resultatenset (bijv. UPDATE )
  2. Uw zoekopdracht is mislukt

In jouw geval is de query mislukt. De reden dat het is mislukt, is omdat je bent ontsnapt aan de achterste vinkjes in de PHP-tekenreeks waar dat niet nodig was.

Je regels zien er als volgt uit:

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

Wanneer ze gewoon dit zouden moeten zijn:

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

Nu enkele kanttekeningen:

  • Schrijf geen nieuwe code die gebruikmaakt van de mysql_* functies. Ze zijn verouderd en zullen uiteindelijk uit PHP worden verwijderd. Gebruik MySQLi of BOB in plaats daarvan (ik raad persoonlijk PDO, YMMV aan)
  • Het op deze manier nesten van databasefuncties is geen bijzonder goede manier om uw code te schrijven. Het is veel beter om de fouten expliciet te controleren na elke functieaanroep.

Bijvoorbeeld:

$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
  // Handle error here
}
// Now process the result
  • U moet in uw zoekopdrachten ofwel alle id's of geen enkele citeren (bij voorkeur alle). Slechts enkele citeren maakt het moeilijker om te lezen.

bijv.

SELECT `siteTitle` FROM `siteSettings`



  1. Uitvoeringsvolgorde van Group By, Having en Where-clausule in SQL Server?

  2. 3 manieren om rijen met kleine letters te vinden in MySQL

  3. 4 manieren om dubbele rijen te vinden in MySQL

  4. Gegevenspartitionering voor grootschalige toepassingen