我创建这个脚本已经有很长一段时间了,我又遇到了一个错误。这是代码块。
$query=$db->prepare("SELECT post_id, title, body, category FROM posts INNER JOIN categories ON categories.category_id=posts.category_id ORDER BY post_id DESC LIMIT $start, $per_page");
$query->execute();
$query->bind_result($post_id, $title, $body, $category);
while($query->fetch()):
$lastspace = strrpos($body, ' ');?>
<article>
<h2><?php echo $title?></h2>
<?php echo $category;?>
<?php echo "<br><br>";?>
<p><?php echo nl2br (substr($body, 0, $lastspace)). "<br><a href='post.php?id=$post_id'>Read More</a>"?></p>
<?php echo "<hr>"?>
</article>
<?php endwhile ?>
$db变量是数据库连接。
"error"出现在php echo nl2br
行,创建并添加substr
、$lastpace
和href
后,$body
将不会回显。当我删除这些时,脚本运行,while循环得到$body
。
我没有收到任何错误或任何东西,$body
将拒绝出现。如果可能的话,要友善:)
我的错误是什么?
将substr
和nl2br
调用分开,以避免错误导致循环终止。这样,如果$body_sub为空,nl2br将警告您,但不会终止脚本:
<?php
$body_sub = substr($body, 0, $lastspace);
echo nl2br($body_sub);
?>
此外,这纯粹是表面上的,但您的代码看起来很混乱。为什么不让PHP回显HTML,而不是在HTML中到处插入<?php ?>
标记呢?