微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP mysql_query,返回整数而不是资源

如何解决PHP mysql_query,返回整数而不是资源

| 在有人跳上我之前,我在这里已经找到了类似的问题,但不幸的是,他们的回答似乎不适用于我的问题。 我创建了一个名为“ 0”的函数,以便在查询出错时更容易产生错误(带有标准输出)。代码如下:
function sqlResult($query)
{
    return MysqL_query($query) 
    or die(\"sql Query: \" . $query . \"<br />sql Error: \" . MysqL_error());
}
如您所见,它只是以我喜欢的方式输出一个错误,并且为我省去了编写代码的麻烦。但是,尽管在大多数情况下(例如,我使用SELECT或INSERT的情况)都可以正常工作,但它会引发以下错误
PHP Warning:  MysqL_fetch_array() expects parameter 1 to be resource,boolean given in /var/www/login/login_submit.PHP on line 42
它返回1而不是资源。如果,而不是调用函数(位于单独的PHP文件中),而只是使用同一文件中的代码行而不使用return语句, (例如
$sqlResult = MysqL_query($sqlQuery) or ...
等),它会正常返回资源。 如果相关,我的SQL查询也如下:
$sqlQuery = 
  \"SELECT userID,username,password,access_level
   FROM users
   WHERE username = \'{$username}\'
   AND (password = \'{$password_sha1}\' OR password = \'{$password_sha256}\')\";
任何对此的投入将不胜感激。 谢谢, 模范

解决方法

binding昧的猜想是约束规则在这里生效。 PHP可能会将您的功能视为
return (mysql_query(...)) or die(...);
然后在看到die()之前返回。尝试像这样重写
function sqlQuery(...) {
    $result = mysql_query(...);
    if ($result === FALSE) {
        die(mysql_error(...));
    }
    return $result;
}
因此,不会有任何错误的解析。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。