当前位置: 首页 > 面试题库 >

警告:mysql_result()期望参数1为资源,给定布尔值[重复]

戈宏义
2023-03-14
问题内容

这个问题已经在这里有了答案

7年前关闭。

可能重复:

PHP:警告:sort()期望参数1为数组,给定资源

我的PHP函数脚本昨晚工作正常,现在当我今天登录进行更多工作时,

“警告:mysql_result()期望参数1为资源,给定布尔值”。

我不知道为什么这不起作用。我已经在线阅读了PHP手册,甚至还看到了使用和使用我所做的示例。谁能帮我这个忙吗?我一直在修正错误(一个错误,一个错误)(今天登录时,很多事情停止了工作),我的智慧到此为止。如果有帮助,我正在服务器上使用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()返回的是布尔值而不是结果资源。发生这种情况有两个原因:

  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`


 类似资料:
  • 问题内容: 每当我运行此命令时,我都会收到此错误: 编码: 问题答案: 那是因为mysql_query有时返回布尔值false(查询错误)。您需要检查一下: 上面的代码写得不好,不推荐使用。在实际项目中使用带有异常的PDO。

  • 问题内容: 我正在尝试从MySQL表中选择数据,但收到以下错误消息之一: mysql_fetch_array()期望参数1为资源,给定布尔值 这是我的代码: 问题答案: 查询可能由于各种原因而失败,在这种情况下,mysql_ *和mysqli扩展名都将从它们各自的查询函数/方法中返回。您需要测试该错误情况并进行相应处理。 mysql_ *扩展名 : 注: 该mysql_功能已被弃用,并在PHP版本

  • 问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复: PHP:警告:sort()期望参数1为数组,给定资源 请帮忙, 我得到以下错误: 警告:mysql_fetch_array()期望参数1为资源,布尔值在......中给出。 这是我的查询: 问题答案: 您的查询($ myQuery)失败,因此不产生查询资源,而是产生FALSE。 要揭示动态生成的查询的样子并揭示错误,请尝试以下操

  • 我的代码中出现了这个错误,我不知道如何解决它我的代码: 这是一个错误: 警告:mysqli_query()要求参数1为mysqli,资源在C:\xampp\htdocs\limitless\connect_to_mysql中给出。第17行的php 我做错了什么?

  • 问题内容: 我对PHP和MySQL还是很陌生,但是我无法弄清楚这一点。我在论坛周围搜索了所有内容,但没有找到我能理解的答案。我最初使用的是mysql_fetch_assoc(),但我只能搜索数字,并且在搜索字母时也收到错误。我希望我在正确的轨道上。预先感谢您的所有帮助! 问题答案: 当您的结果不是结果(而是“ false”)时,就会发生这种情况。您应该更改此行 对此: 因为“可以解释$变量,而’不

  • 为什么我会收到此错误消息: 警告:mysqli_free_result()期望参数1mysqli_result,给出布尔值 我的代码是: