[英]PDO query() or fetch() not working
我有我為在數據庫中的網站中顯示評論而編寫的代碼,但未顯示評論。
我認為PDO query()
或fetch()
可能無法正常工作,但問題是我沒有收到任何錯誤。
這是我使用的代碼:
<?php
$showcom1 = $db->query("select * from comments where pc_active='no' order by p_id asc") or die (mysql_error());
$gpid = $_GET['p_id'];
$dcid = $_GET['dc_id'];
$ecpid = $_GET['ec_id'];
$hcpid = $_GET['hc_id'];
$scpid = $_GET['sc_id'];
echo "
<table width='100%' align='center' cellpadding='10' cellspacing='10'>
<tr>
<td class='bodymenu' style='color: #4276a1' align='center'>
الفئات <text style='color: #555'>::</text>
1 = القرآن الكريم
<text style='color: #555'>||</text>
2 = أدعية
<text style='color: #555'>||</text>
3 = قصص
<text style='color: #555'>||</text>
4 =مقالات
<text style='color: #555'>||</text>
5 = فتاوى
<text style='color: #555'>||</text>
6 = رمضانيات
<text style='color: #555'>||</text>
7 = اسلاميات
</td>
</tr>
</table>
<table width='100%' align='center' cellpadding='0' cellspacing='0'>
<tr>
<td class='tbl' colspan='7'>التعليقات</td>
</tr>
<tr align='center' >
<td class='tblbb2' >الفئة</td>
<td class='tblbb2' >اسم المعلق</td>
<td class='tblbb2' >بريد المعلق</td>
<td class='tblbb2' >اي بي المعلق</td>
<td class='tblbb2' >تاريخ التعليق</td>
<td class='tblbb2' >رابط الصفحة</td>
<td class='tblrlb' >الخيارات</td>
</tr>";
// TABLE comments = pc_id,pc_name,pc_mail,pc_ip,pc_date,pc_text,pc_active,p_id
while ($rcom1 = $showcom1->fetch(PDO::FETCH_OBJ)) {
echo "
<tr>
<td align='center' class='tblr' >".$rcom1->pc_cat."</td>
<td align='center' class='tblr' >".$rcom1->pc_name."</td>
<td align='center' class='tblr' >".$rcom1->pc_mail."</td>
<td align='center' class='tblr' >".$rcom1->pc_ip."</td>
<td align='center' class='tblr' >".$rcom1->pc_date."</td>
<td align='center' class='tblrl' ><a target='_blank' href='../pages.php?p_id=".$rcom1->p_id."'>مشاهدة</a></td>
<td align='center' class='tbll' >
<a href='index.php?cpages=comments&dc_id=".$rcom1->pc_id."'>حذف</a> -
<a href='index.php?cpages=comments&p_id=".$rcom1->pc_id."'>معاينة</a> -
<a href='index.php?cpages=comments&hc_id=".$rcom1->pc_id."'>اخفاء</a>
</td>
</tr>
";
}
echo " <tr colspan='7'>
<td colspan='7' class='tblb'>
</td>
</tr>";
?>
您想顯示評論,但在查詢中
$showcom1 = $db->query("select * from comments where pc_active='no' order by p_id asc") or die (mysql_error());
您有pc_active
因為no
我想no
意味着注釋是隱藏的,並且您在數據庫中設置的其他詞都可見,所以..也許您在數據庫中沒有隱藏的注釋,所以嘗試將no
更改為另一個詞或將pc_active更改為您的數據庫為no
我注意到您使用 or die (mysql_error());
其他東西 or die (mysql_error());
而這將無法與pdo一起使用,您可能需要更改它以使用捕獲的功能:D
它是這樣的:
將您的查詢放在
try {
}
然后將捕獲的內容放在這樣的嘗試之后:
catch(PDOException $e){
echo 'ERROR: '.$e->getMessage();
}
您應該在此處了解有關pdo錯誤處理的更多信息: PHP Oficcial Site for Error Handling
如果您使用的是PDO
那么為什么在此查詢末尾使用or die(mysql_error())
處理錯誤?
$showcom1 = $db->query("select * from comments
where pc_active='no' order by p_id asc") or die
(mysql_error());
無論如何,我不知道您的目標是什么,但是錯誤處理是使用try / catch塊完成的,如下所示:
try{
$showcom1 = $db->query("select * from comments
where pc_active='no' order by p_id asc");
}catch(PDOException $e){
echo 'ERROR: '.$e->getMessage();
}
上面的方法與您的查詢結合使用會/為您帶來人類可讀的錯誤
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.