下面的代码是我用来添加到已经在数据库中创建的表的代码。我仍然收到查询错误,错误:您的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);
?>
答案 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`)
我猜你接下来会看到的是关于列数与值不匹配的错误。请证明阅读并干查您的查询。