这是我的查询运行代码:
$sqlm = getPageById();
if ($resultm = $mysqli->prepare($sqlm))
{
$mypageid = 216;
$resultm -> bind_param("i",$mypageid);
$resultm->execute();
$resultm->store_result();
$rowsm = $resultm->num_rows;
}
if($rowsm > 0)
{
$rowm = fetch($resultm);
$pagetitle = $mysqli->real_escape_string($rowm[0]["page_title"]);
$pageContent = $rowm[0]["page_content"];
$pageurlname = $mysqli->real_escape_string($rowm[0]["page_name_url"]);
}
这是我的疑问:
function getPageById()
{
$sqlStr = "select * from tbl_pages where page_id = ?";
return $sqlStr;
}
这就是我发的帖子:
$mysqli->real_escape_string ($_POST["page_content"]);
这是我的echo
:
$pageContent = $rowm[0]["page_content"];
<?=$pageContent?>
我在回声中遇到问题 我从数据库中得到如下结果:
代替:stackoverflow .. 我得到:stack / r / n // over / r / n / flow 有什么帮助吗?
答案 0 :(得分:1)
mysqli_real_escape_string
用于清理您要插入到SQL查询中的字符串(如果使用这种老式方式而不是使用预准备语句)。它不用于处理查询的结果。
如果您要将结果插入网页,则所需的功能为htmlentities
。 E.g。
$pagecontent = htmlentities($rowm[0]["pagecontent"]);
在查询数据库时使用预准备语句可防止SQL注入。将结果放在网页上时使用htmlentities
可以防止跨站点脚本攻击。
答案 1 :(得分:0)
看起来数据是问题,而不是你的PHP代码。你确定这些换行符不在数据库中吗?