我正在使用普通的INSERT sql语句,但由于某种原因,当我插入代码时,它就像这样出现。这是我的代码:
$sql="insert into comments (username, comment) values ('$name','$comment')";
mysqli_query($link, $sql);
我的SQL表:
答案 0 :(得分:0)
当字符串中存在控制字符时,MySQL的输出格式不能正常工作。它希望字符串中的每个字符在输出中占用一个水平空格,但是换行符会出现在行的开头。
您可以使用以下命令将换行显示为转义序列:
SELECT username, REPLACE(comment, '\n', '\\n') AS comment, id
FROM comments;
如果输入来自Windows,也可能有回车,它返回当前行的开头。你可以用以下代码替换它们:
SELECT username, REPLACE(REPLACE(comment, '\n', '\\n'), '\r', '\\r') AS comment, id
FROM comments;
答案 1 :(得分:0)
您只需使用mysqli_real_escape_string()来转义所有字符。
$sql="insert into comments (username, comment) values ('".mysqli_real_escape_string($name)."','".mysqli_real_escape_string($comment)."')";
mysqli_query($link, $sql);
或强>
$name = $mysqli->real_escape_string($name);
$comment = $mysqli->real_escape_string($comment);
$sql="insert into comments (username, comment) values ('$name','$comment')";
mysqli_query($link, $sql);