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

时间:2013-07-31 15:53:51

标签: php mysql forms

下面的代码是我用来添加到已经在数据库中创建的表的代码。我仍然收到查询错误,错误:您的SQL语法中有错误;查看与您的MySQL服务器版本相对应的手册,以便在“位置,马蹄铁”VALUES附近使用正确的语法('Obed& Isaacs','Springfield Illinois','Buffalo Chic'在第1行。

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

<?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);
?>

4 个答案:

答案 0 :(得分:0)

您实际上没有对数据库做过任何事情 - 您只将查询放入变量中。

添加

mysql_query($sql) or die ("Error! ".mysql_error());
在致电mysql_close之前

答案 1 :(得分:0)

使用这样的代替$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')
           ");

答案 2 :(得分:0)

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

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

我第一次从MySQL切换到MySQLi时自己使用过它。使学习曲线变得更小。

查看源代码(它是在GitHub上托管的,所以你不需要下载它就可以一目了然。)

也不要继续使用MySQL。由于MySQLi和其他一些改进,后继 prepared statements 更安全。 PDO会更好,但它更先进。

试一试。

答案 3 :(得分:0)

使用

` 

围绕列名称,即:

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

应该是这样的:

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

我猜你接下来会看到的是关于列数与值不匹配的错误。请证明阅读并干查您的查询。