我有一个简单的mysql查询检查数据库表'all_users'以查找在文本字段中输入的电子邮件。
电子邮件位于名为$email
的变量中。
在我的测试用例中,$email
是something@yahoo.com,电子邮件存在于数据库表中。
当我这样做时:
$result=mysql_query("select * from all_users where email='$email' ") or die (mysql_error());
$row=mysql_fetch_array($result);
$num=mysql_num_rows($result);
$num
即使找到$row
也为零。
所以,当我echo $row['email'];
时,它会正确地打印出'something@yahoo.com',但是当我echo $num;
时,它就是0!
我在这里做错了什么?我做了一千次,但从来没有遇到过这个问题。
答案 0 :(得分:1)
From http://php.net/manual/en/function.mysql-fetch-array.php - 返回与获取的行对应的数组,向前移动内部数据指针
因此,请更改顺序,即先使用mysql_num_rows
,然后再执行mysql_fetch_array
答案 1 :(得分:1)
如果您颠倒语句的顺序,它将按预期工作。您正在检索资源之前的行询问它剩下多少行。由于您显然只找到一行,因此会生成0
,因为您已经检索了该行。
如果你这样做,它应该有效:
$num = mysql_num_rows($result);
$row = mysql_fetch_array($result);
答案 2 :(得分:0)
我认为不是因为您的mysqli_num_rows
函数,请检查搜索查询是否有效,否则请使用trim(column_name)
而不是简单地给出列。
对我有用...花了我两天时间进行验证?