0

我在第二页上收到以下消息,但没有任何效果...

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 (); 
?>
4

2 回答 2

2

这意味着您的查询没有正确运行。你应该检查:

if (!$result) {
    echo $mydb->error;
}

die();

准备好的报表

您应该使用它们,因为您正在接受用户输入。准备好的语句提供了很好的清理输入,因此用户不会弄乱您的数据库。

看起来您有一个电子邮件列,但正在尝试根据以下内容选择用户:

id = 电子邮件。

将 id 设置为 INT 是一种常见做法,而 email 可能是 VARCHAR,因此这种比较没有意义(如果您的表架构遵循常见做法)

于 2013-01-10T00:27:52.100 回答
1

查询失败,因为您没有在电子邮件地址周围加上引号。

$sql = "SELECT * FROM User WHERE id = '" . $_GET['email'] . "'";
于 2013-01-10T00:29:27.773 回答