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;
}
因此,不会有任何错误的解析。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...