这个问题在这里已经有了答案:
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/