这个问题应该很容易解决,但我不能...... 在请求之后,条件必须验证相关文章是否确实存在,验证URL($ _GET)。
我的代码 :(带有简单回声的测试文件)
$id = $bdd->prepare('SELECT content FROM articles WHERE idArticle = ?');
$id->execute(array($_GET['numArticle']));
while ($dataID = $id->fetch()) {
if (empty($dataID) or $dataID == null or !isset($dataID)) {
echo 'No content';
} else {
echo 'Can load the page';
}
}
$id->closeCursor();
页面行为:"可以加载页面"当numArticle是正确的时候正在写,但如果不是,则不会出现任何内容,也不会出现错误消息或其他内容。 有什么想法/建议吗?谢谢。
答案 0 :(得分:0)
执行此操作的一种方法是检查mysqli返回的行数:
$id = $bdd->prepare('SELECT content FROM articles WHERE idArticle = ?');
$id->execute(array($_GET['numArticle']));
if($id->num_rows > 0){
echo "can load page";
}else{
echo 'No content';
}
答案 1 :(得分:0)
您可以使用PDO的fetchAll()
功能,然后对数据运行foreach循环:
$rows = $id->fetchAll(PDO::FETCH_ASSOC);
if(!empty($rows)){
foreach($rows as $row){
echo "content";
}
}
else{
echo "No Content";
}
答案 2 :(得分:0)
假设您正在使用Pdo,看起来您希望使用Pdo的fetchColumn方法。
<?php
$stmt = $db->prepare('SELECT content FROM articles WHERE idArticle = ? LIMIT 1');
$stmt->execute(array($_GET['numArticle']));
if ($result = $stmt->fetchColumn()) {
echo 'A result';
} else {
echo 'Db fetch returned false (or could be a string that evaluates to false).';
}