MYSQL INSERT INTO Produces An Error: You have an error in your SQL syntax

MYSQL INSERT INTO Produces An Error: You have an error in your SQL syntax

我正在尝试为学校项目制作一个简单的 shoutbox。

一切似乎都运行良好,除了我尝试发送消息时。我的 sql 查询很简单,但由于某种原因似乎无法正常工作。

<?php
session_start();
require_once("includes/connect.db.php");

$sql = "SELECT * FROM shoutbox";
$result = mysql_query($sql);

echo '<table border=1>';
while($rows = mysql_fetch_assoc($result)){
    $sb_username = $rows['username'];
    $sb_message = $rows['message'];
    $sb_sent_time = $rows['sent_time'];
    echo '<tr><td>' . $sb_username . ': </td><td>' . $sb_message;
}
echo '</table>';
?>
<form method=post action=shoutbox.php>
    <input type=text name="message">
    <input type=submit value="Send!">
</form>

<?php
if(isset($_POST['message'])){
    $date = time();
    $message = mysql_real_escape_string(htmlentities($_POST['message']));
    $username = $_SESSION['user_name'];
    $sql = "INSERT INTO shoutbox ('username', 'message', 'time_sent') VALUES ('$username', '$message', '$date')";
    mysql_query($sql) or die(mysql_error());
}

?>

产生以下错误: 您的 SQL 语法有误;查看与您的 MariaDB 服务器版本对应的手册,了解在 ''username', 'message', 'time_sent') 附近使用的正确语法 VALUES ('c4sper', 'hello', '1461107151')' 在第 1 行

您在字段名称周围使用了单引号 (') - 它应该是 `(反引号)符号。

用这个新代码替换您代码中的以下行:

 $sql = "INSERT INTO shoutbox (`username`, `message`, `time_sent`) VALUES ('$username', '$message', '$date')";

注意:使用 ``(反引号) 而不是 ''(引号) table 您的 INSERT 查询中的列(字段)名称。

有关详细指导,请查看:

When to use single quotes, double quotes, and backticks in MySQL