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
我正在尝试为学校项目制作一个简单的 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