我有存储源代码到一个小脚本bin数据库的问题。问题是,用于从数据库查看的语法高亮中打印的代码有换行符,它不应该,我也在数据库中看到文本以相同的方式存储。
我已经尝试使用几种方法来完成这项工作,起初我认为是一个wrap问题,所以我将wrap设置为输入表单上的硬。然后添加了addslashes,没有工作,我尝试了magic_quotes,在这种情况下,如下所示,我尝试了mysql_real_escape_string,来自$content的文本将存储在数据库中,在它们不应该的地方有换行符。
我错过了什么吗?由于
下面的代码是对db的插入,所涉及的值是$content
<?php
session_start();
$submit = $_POST['submit'];
$sniptitle = ($_POST['sniptitle']);
$date = date("Y-m-d H:i:s");
$user = $_SESSION['username'];
$lang = ($_POST['lang']);
$con=mysqli_connect("localhost","xxxx","xxxx","xxxx");
$content = mysql_real_escape_string($_POST['snipcontent']);
// ^^^HERE IS THE ISSUE ^^^
if(isset($_POST['submit'])) {
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO code_lib ( snip_title , snip_content , posted_by , lang , datetime )
VALUES ('$sniptitle' , '$content' , '$user' , '$lang' , '$date' )");
mysqli_close($con);
header ("Location: xxx"); // Move back to a page
exit();
}
?>
- mysql_real_escape_string不应该与mysqli一起使用
- 然而,这也不应该是一个问题
- 很可能你的"解决方案"是与条带斜杠配对在fetch
- 所以,正确的解决方案是
- 关闭魔法引号
- 和使用mysqli_real_escape_string