我正在制作电子邮件确认页面,但当用户点击电子邮件中的链接时,会将其带到接受页面。当页面加载时,它会返回此错误。
警告:mysql_fetch_assoc()期望参数1是资源,第15行/home/gener105/public_html/email_confirm.php中给出的对象
<?php
include 'includes/dbh.php';
$username = $_GET['username'];
$code =$_GET['code'];
$sql= "SELECT * FROM users WHERE username='$username'";
$result= mysqli_query($conn, $sql);
if (! $result){
throw new My_Db_Exception('Database error: ' . mysql_error());
}
while($row = mysql_fetch_assoc($result)) {
$db_code = $row['confirm_code'];
}
if($code == $db_code) {
$sql2 = "UPDATE users SET confirmed=1 WHERE username='$username'";
$result2 = mysqli_query($conn, $sql2);
$sql3 = "UPDATE users SET confirm_code=0 WHERE username='$username'";
$result3 = mysqli_query($conn, $sql3);
echo "It worked!";
} else {
echo "Error: Username and code dont match!";
}
?>
我知道它在讨论while语句,但我一直在研究它的讨论内容,我感到困惑,我认为$ result变量应该是参数。
答案 0 :(得分:1)
使用mysql_fetch_assoc获取结果,但使用mysqli扩展名执行查询
$result= mysqli_query($conn, $sql);
替换
mysql_fetch_assoc
到
mysqli_fetch_assoc