Mysql
 sql >> база данни >  >> RDS >> Mysql

Предупреждение:mysql_result() очаква параметър 1 да бъде ресурс, като е дадено булево

Проблемът е, че mysql_query() връща булев вместо резултатен ресурс. Има две причини това да се случи:

  1. Изпълнихте заявка, която връща успех/неуспех вместо набор от резултати (напр. UPDATE )
  2. Заявката ви не бе успешна

Във вашия случай заявката е неуспешна. Причината да се провали е, че сте избягали от обратните отметки в низа на PHP, където не е необходимо.

Вашите редове изглеждат така:

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

Когато те трябва да бъдат просто това:

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

Сега, някои странични бележки:

  • Не пишете нов код, който използва mysql_* функции. Те са отхвърлени и в крайна сметка ще бъдат премахнати от PHP. Използвайте MySQLi или PDO вместо това (аз лично препоръчвам PDO, YMMV)
  • Вложените функции на база данни по този начин не е особено добър начин да напишете кода си. Много по-добре е грешките да се проверяват изрично след всяко извикване на функция.

Например:

$result = mysql_query("SELECT somecol FROM sometable");
if (!$result) {
  // Handle error here
}
// Now process the result
  • Трябва да цитирате всички идентификатори или нито един в заявките си (за предпочитане всички). Цитирането само на някои прави четенето по-трудно.

напр.

SELECT `siteTitle` FROM `siteSettings`



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да търся (независимо от главни букви) в колона, използвайки заместващ знак LIKE?

  2. Как мога да слея две MySQL таблици?

  3. Как да отстраните проблеми с MySQL дефинера

  4. Как да намерите дублиращи се записи в MySQL

  5. Как работи функцията UCASE() в MySQL