由于某种原因,它执行该语句,然后绑定所有值,但不是$postContent的最后一个值。
<?php
if (isset($_GET['postID']))
{
$postID = $_GET['postID'];
$stmt = $mysqli->prepare("SELECT * FROM Posts WHERE postID = ?");
$stmt->bind_param('i', $postID);
$stmt->execute();
$stmt->bind_result($postID, $postTitle, $postCat, $postUser, $postDateTime, $postContent);
$stmt->fetch();
echo $postContent;
?>
<h1><?php echo $postTitle;?></h1>
</div> <!-- End of box div -->
<div class="blogroll"> <!-- Start of blogroll div -->
<div class="top"></div> <!-- Start and end of top div -->
<div class="post"> <!-- Start of post div -->
<div class="post_date">Posted by <?php echo $postUser;?> on <?php echo $postDateTime ?> Category : <?php echo $postCat;?></div> <!-- Start and end of post_date div -->
<div class="post_text"> <!-- Start of post_text div -->
<?php echo $postContent;?>
</div> <!-- End of post_text div -->
<?php
}
?>发布于 2012-01-09 02:24:02
这假设当您执行SELECT *操作时,数据库中的源表实际上为$postContent提供了一个列
查看PHP脚本输出的HTML源文件,查看$postContent是否出现在源代码中而不是屏幕上。您还没有转义HTML的数据库输出(将<编码为<,等等),因此可能是$postContent中的某些内容或更早的变量中断了您的输出。在HTML中打印变量时,不要直接回显这些变量,而是将它们包装在htmlspecialchars()中。
<?php echo htmlspecialchars($postTitle); ?>
<?php echo htmlspecialchars($postUser); ?>
<?php echo htmlspecialchars($postDateTime); ?>
<?php echo htmlspecialchars($postCat); ?>
<?php echo htmlspecialchars($postContent); ?>发布于 2013-07-20 00:41:01
MySQLi无法为LONGTEXT对象的最大大小(~4 4Gb)分配足够的内存。
这是一个已知的错误:https://bugs.php.net/bug.php?id=51386。
解决方法是将LONGTEXT列转换为MEDIUMTEXT或其他更小的列,或者考虑使用替代数据库或接口类。
https://stackoverflow.com/questions/8779027
复制相似问题