我有一个连接到我的数据库的代码,应该显示文本。如果id不存在,它应该重定向我。
include ('design.php');
include ('mysqli/opendb.php');
if(empty($_GET['id']))
{
header("Location:index.php");
}
$stmt=$mysqli->prepare("SELECT titel, text, DATE_FORMAT(datum, '%d. %m. %Y'), autor FROM news WHERE id = ?");
$stmt->bind_param("i",$_GET['id']);
$stmt->execute();
$stmt->bind_result($titel, $text, $datum, $autor);
$stmt->fetch();
var_dump($titel); //Result or NULL
if(empty($titel)); // <-- isn't working / execute when $titel has a value and when it's NULL
{
die(header("Location:index.php"));
}
我的SQL查询正在运行,我得到我的标题等,或者如果id不存在,我得到一个NULL但是我的if不是。它执行以及我得到一个结果,我不会继续。我不明白为什么。
代码来自文章显示。如果文章不存在,我应该被重定向到起始页。
(我知道这段代码不能安全地进行SQL注入,但代码的安全性超出了这个问题的范围。)
答案 0 :(得分:3)
如果你的期望是脚本在没有给出id的情况下终止,请用第5行替换第5行中的第一个header()调用:
header("Location: index.php");
exit;
header()
本身只是设置HTTP标头,不会影响代码流。
有关文档,请参阅http://uk.php.net/manual/en/function.header.php。
至于&#34; if&#34;:后面有分号 - 这就是为什么它不起作用。