gpt4 book ai didi

php - 从 While 循环内的数据库调用时,注释不显示

转载 作者:行者123 更新时间:2023-11-30 01:31:43 25 4
gpt4 key购买 nike

我正在使用 PDO 从 MySQL 中提取注释,限制显示 2 个注释,但查询不会检索注释,我也无法 var_dump 和 print_r 因为它确实打印任何内容。我认为这应该是查询本身的问题,认为它已经工作了无数个小时了,所以我想我应该问更有经验的程序员。

页面上没有数据输出,我不确定是 Second_count 变量还是 post_iD 变量的问题。

<强>1。我是否正确使用了 while 循环?

<强>2。使用 while 循环或 foreach 更好?

<强>3。 var_dump 和 print_r 函数是否由于错误而无法工作 查询或 PHP.INI 中的内容看起来如何?

以下是我如何使用 PDO 提取数据。

PUBLIC FUNCTION Comments( $post_iD,$second_count ){
if($second_count){
$sth = $this->db->prepare("
SELECT C.com_id, C.uid_fk, C.comment, C.created, U.username, U.photo
FROM comments C, users U
WHERE U.status = '1'
AND C.uid_fk = U.uiD
AND C.msg_id_fk = :postiD
ORDER BY C.com_id ASC LIMIT :second, 2");
$sth->execute(array(':postiD' => $post_iD, ':second' => $second_count));

while( $row = $sth->fetchAll())
$data[] = $row;
if(!empty($data)){
return $data;
}
}
}

这是我尝试在页面上显示信息的方式,

<?php
$commentsarray = $Wall->Comments( $post_iD, 0 );
$x=1;

if($x){
$comment_count = count($commentsarray);
$second_count = $comment_count-2;

if($comment_count>2){
?>
<div class="comment_ui" id="view<?php echo $post_iD; ?>">
<a href="#" class="view_comments" id="<?php echo $post_iD; ?>">View all<?php echo $comment_count; ?> comments</a>
</div>

<?php
$commentsarray = $Wall->Comments( $post_iD, $second_count );
}
}

if( $commentsarray ){
foreach($commentsarray as $data){
$com_id = $data['com_id'];
$comment = tolink(htmlcode($data['comment'] ));
$time = $data['created'];
$mtime = date("g:i", $time);
$username = $data['username'];
$com_uid = $data['uid_fk'];
$photo = $data['photo'];

?>
<div class="stcommentbody" id="stcommentbody<?php echo $com_id; ?>">
<div class="stcommentimg">
<img src="<?php echo $photo;?>" class="small_face">
</div>

<div class="stcommenttext">
<?php if($uiD == $com_uid || $uiD == $post_iD ){ ?>
<a class="stcommentdelete" href="#" id="<?php echo $com_id;?>" title="Delete Comment"></a>
<?php } ?>

<div class="stmessage"><?php echo clear($comment); ?></div>
</div>
<div class="stime"><a href='' title='<?php echo $time;?>' class="timeposted"><?php echo $mtime;?> — Like</a></div>
</div>
<?php
}
}
?>

最佳答案

1.就像这样:

$data = $sth->fetchAll();

if(!empty($data) AND count($data) > 0){
return $data;
}

您不需要 while 来使用 fetchAll

2.最好在每个查询中都使用异常,这样您就可以查看是否有任何错误。

例如

try
{
//your PDO stuffs here
}
catch (PDOException $e)
{
echo $e->getMessage();
}

关于php - 从 While 循环内的数据库调用时,注释不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17375497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com