繁体   English   中英

SQL表格式不正确

[英]Sql table not formatted correctly

我使用的是普通的INSERT sql语句,但是由于某些原因,当我插入代码时,会出现这种情况。 这是我的代码:

$sql="insert into comments (username, comment) values ('$name','$comment')";
mysqli_query($link, $sql);

我的SQL表:

我坏了的SQL表

当字符串中包含控制字符时,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;

您只需使用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);

手册: http : //php.net/manual/de/mysqli.real-escape-string.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM