警告:mysql_result()期望参数1是资源,布尔给定
可能重复:
PHP:警告:sort()期望参数1是数组,给定的资源
我的PHP函数脚本昨天晚上工作正常,现在当我login到今天工作了一些,我越来越
“警告:mysql_result()期望参数1是资源,布尔给定”。
我不知道为什么这不起作用。 我已经在线阅读了PHP手册,甚至还看到了我所做的一些例子, 任何人都可以请帮助我这个? 我一直在修复错误后(当我今天login时,很多事情停止工作),我在我的智慧结束在这里。 如果有帮助,我在我的服务器上使用Windows 7上的XAMPP。
代码:( 也可以通过Pastebin获得)
<?php function dbConnect() { $dbserver="127.0.0.1"; $dbuser="Mike"; $dbpassword="mike"; $dbname="devsite"; $con = mysql_connect($dbserver, $dbuser, $dbpassword); mysql_select_db($dbname, $con); } function getSiteTitle() { $siteTitle = mysql_result(mysql_query("SELECT \`siteTitle\` FROM siteSettings"), 0); return $siteTitle; } function getSiteHeader(){ $siteHeader = mysql_result(mysql_query("SELECT \`siteHeader\` FROM siteSettings"), 0); return $siteHeader; } function getBodyContent() { $bodyContent = mysql_result(mysql_query("SELECT \`bodyContent\` FROM siteSettings"), 0); return $bodyContent; } ?>
问题是, mysql_query()
返回一个布尔值而不是结果资源。 有两个原因可能发生:
- 您执行的查询返回成功/失败,而不是结果集(例如
UPDATE
) - 您的查询失败
在你的情况下,查询失败。 它失败的原因是因为你已经逃过了不需要的PHPstring中的后退标记。
你的行看起来像这样:
$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`