使用PHP将数据添加到MySQL表(修订版)


Adding Data to MySQL Table using PHP(Revised)

下面的代码是我用来添加到数据库中已经创建的表中的代码。我仍然收到一个查询错误,错误:您的SQL语法有错误;在第1行的"Location,Horseshoe)VALUES"("Obed&Isaacs"、"Springfield Illinois"、"Buffalo Chic")附近,查看与MySQL服务器版本相对应的手册,以获得正确的语法。

如何修复此错误?它似乎是唯一能阻止页面其余部分加载的东西。

<?php
$link=mysql_connect("*************","************","***********");
if (!$link)
{
echo "Failed to connect to MySQL: " . mysql_error();
}
mysql_error();
mysql_select_db(horseshoevotes); 
$sql = "INSERT INTO `submissions` (Restaurant, Restaurant Location, Horseshoe)
VALUES('$_POST[restaurant]','$_POST[location]','$_POST[horseshoe]','$_POST[email]')";
if (!mysql_query($sql))
{
die('Error: ' . mysql_error($link));
}
echo "Submitted";
mysql_query($sql);
mysql_close($link);
?>

您实际上并没有对数据库做任何操作,只是将查询放入了一个变量中。

添加

mysql_query($sql) or die ("Error! ".mysql_error());

然后再呼叫mysql_close

这样使用而不是$sql

$restaurant = mysql_real_escape_string($_POST[restaurant]);
$location   = mysql_real_escape_string($_POST[location]);
$horseshoe  = mysql_real_escape_string($_POST[horseshoe]);
$email      = mysql_real_escape_string($_POST[email]);
mysql_query("INSERT INTO `submissions` 
                         (Restaurant, Location, Horseshoe, Email)
                         VALUES('$restaurant','$location','$horseshoe','$email')
           ");

要快速学习如何使用MySQL,请开始使用包装类。

我建议:https://github.com/ajillion/PHP-MySQLi-Database-Class

当我第一次从MySQL切换到MySQLi时,我自己也使用过这个。使学习曲线变小了很多。

看看源代码(它托管在GitHub上,所以你不需要下载它就能看一眼)。

也不要继续使用MySQL。后续的MySQLi由于准备好的语句和一些其他改进而更加安全。PDO会更好,但它更先进。

试试看。

使用

` 

围绕列名,即:

INSERT INTO `submissions` (Restaurant, Restaurant Location, Horseshoe)

应该是这样的:

INSERT INTO `submissions` (`Restaurant`, `Restaurant Location`, `Horseshoe`)

我猜接下来您将看到的是列计数与值不匹配的错误。请校对并试运行您的查询。