php mysql_query() 返回 false

标签 php mysql sql

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





mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc... expects parameter 1 to be resource

(31 个回答)


7年前关闭。




嘿,我目前正在尝试为我正在制作的应用程序测试登录验证 php 脚本。我的问题是,当我运行 mysql_query 它返回 false(我假设),我似乎无法弄清楚为什么。我在我的 phpMyAdmin 帐户上运行了相同的 sql 语句并且工作正常。这是我的代码:

<php
ini_set('display_errors', 1);
error_reporting(E_ALL);

$link = mysql_connect("address", "username", "password") or die("Could not connect");


mysql_select_db(""logininfo,$link) or die("Could not select database");


$sql = "SELECT * FROM 'Users'  WHERE 'Email' = '$_POST[Email]' AND              'Password'='$_POST[Password]'";

$result = mysql_query($sql,$link);

if ($result == False){
echo" error here";
}
echo $result;

$numrows = mysql_result($result,0,0);


if ($numrows == 0) {
        echo 'Login failed';
}
echo "login success";

?>

另请注意,当我运行 mysql_result() 时,它会返回一条错误消息,指出:“mysql() 期望参数 1 是资源,给定的 bool 值。”所以我 85% 确信错误在于 $result 但我不知道如何解决它。谢谢

最佳答案

SQL injection attack并且在您的查询中引用不正确:

$sql = "SELECT * FROM 'Users'  WHERE 'Email' = '$_POST[Email]' AND              
                      ^-----^--- should be `, not '

字段应该用反引号引起来,绝不能 ' . '把它们变成字符串。

MySQL 可以告诉你这个:
if ($result === false) {
   die(mysql_error());
}

关于php mysql_query() 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23276559/

相关文章:

mysql - 在将表连接到自身时,如何为列提供唯一的名称?

php - 数据库搜索结果给出尝试获取 $result 上的非对象错误的属性

php - 将专有 CMS 数据库迁移到 Joomla 数据库

php - 使用 TCPDF 的空白 pdf 文件

python - 如何使用Python将嵌套字典/json插入MySQL表

sql - 删除 SQL 注释

mysql - 在sql查询中显示最小数量的客户端

php - 使用mysql生成当前、30、60、90天的老化报告

php - 如何在 PHP 中使用类型提示来指定模板内的变量范围? (特别是 PhpStorm)

c# - 如何解决这个 "error in your SQL syntax"