我在第二页上收到以下消息,但没有任何作用......
Fatal error: Call to a member function fetch_assoc() on a non-object in C:\xampp\htdocs\send.php on line 6
这是我显示电子邮件地址的第一页,它工作得很好但是当我点击电子邮件并转到info.php时我得到了错误..出了什么问题?
<?php
$mydb = new mysqli('localhost', 'root', '', 'database');
$sql = "SELECT * FROM test ";
$result = $mydb->query($sql);
while( $row = $result->fetch_assoc() ){
echo '<td><a href="info.php?email='.$row['Email'].'">'.$row['Email'].'</a> </td>';
echo "<br/>";
}
$mydb->close ();
?>
这里是info.php。请记住,我正在尝试在数据库的同一个表中显示单个用户的行年龄和名称。
<?php
$mydb = new mysqli('localhost', 'root', '', 'database');
$sql = "SELECT * FROM User WHERE id = " . $_GET['email'];
$result = $mydb->query($sql);
while( $row = $result->fetch_assoc() ){
echo $row['Age'] . " " . $row['Name'] ;
echo "<br/>";
}
$mydb->close ();
?>
答案 0 :(得分:2)
这意味着您的查询无法正常运行。你应该检查一下:
if (!$result) {
echo $mydb->error;
}
die();
您应该使用它们,因为您正在接受用户输入。准备好的语句提供了良好的清理输入,因此用户不会弄乱您的数据库。
看起来您还有一个电子邮件列,但正在尝试根据以下内容选择用户:
id = email。
通常的做法是将id设为INT,并且电子邮件可能是VARCHAR,因此这种比较没有意义(如果您的表模式遵循常规做法)
答案 1 :(得分:1)
查询失败,因为您没有在电子邮件地址周围加上引号。
$sql = "SELECT * FROM User WHERE id = '" . $_GET['email'] . "'";