bil*_*rds 5 php mysqli prepared-statement
不知道为什么我收到这条PHP警告消息.看来准备好的语句中有四个参数,bind_param()中还有四个变量.谢谢你的帮助!
if($stmt = $mysqli -> prepare("SELECT url, month, year, cover_image FROM back_issues ORDER BY year DESC, month DESC")) {
$stmt -> bind_param("ssis", $url, $month, $year, $cover_image);
$stmt -> execute();
$stmt -> bind_result($url, $month, $year, $cover_image);
$stmt -> fetch();
while ($stmt->fetch()) {
echo "<li class='item'><a href='$url'><img src='$cover_image' alt='$cover_image' width='' height='' /></a><br /><span class='monthIssue'>$month $year</span></li>";
}
$stmt -> close();
$mysqli -> close();
}
Run Code Online (Sandbox Code Playgroud)
if($stmt = $mysqli -> prepare("SELECT url, month, year, cover_image FROM back_issues ORDER BY year DESC, month DESC")) {
$stmt -> bind_param("ssis", $url, $month, $year, $cover_image);
[...]
}
Run Code Online (Sandbox Code Playgroud)
这些线条没有任何意义!如果要使用参数,则必须将它们用于where条件或类似条件,非常类似于:
$mysqli->prepare("SELECT * FROM back_issues WHERE url =? AND month =? AND year =? and cover_image = ?");
$stmt->bind_param("ssis", $url, $month, $year, $cover_image);
Run Code Online (Sandbox Code Playgroud)
如果您没有任何占位符与参数绑定,bind_param()方法将产生您正在运行的错误.那么,IF声明应该做什么?如果要验证该查询是否产生任何结果,则首先运行它,然后进行验证.