2013-07-31 2 views
0

Ниже приведен код, который я использую для добавления в таблицы, уже созданные в базе данных. Я по-прежнему получаю сообщение об ошибке с запросом. Ошибка: у вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса для использования рядом с «Location, Horseshoe». VALUES («Obed & Isaacs», «Springfield Illinois», «Buffalo Chic» по строке 1.Добавление данных в таблицу MySQL с использованием PHP (пересмотренный)

Как сделать исправить эту ошибку, это, кажется, единственное, что останавливает остальную часть страницы, чтобы загрузить

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

Вы действительно просто разместили учетные данные своей базы данных? – GolezTrol

+0

Я удалил их. Надеюсь, они были заполнителями, если нет, Натан должен как можно скорее изменить данные на своем сервере. –

+2

Вы не должны использовать методы mysql. Они устарели. Использовать PDO или Mysqli – jezzipin

ответ

0

вы на самом деле не сделали ничего в базе данных -. вы только поставить запрос в переменную

.

Add

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

прежде чем позвонить по телефону mysql_close.

+0

У меня было это там раньше. Я повторно добавил его и до сих пор ничего не вставил в таблицу или базу данных. –

+0

У вас есть обработка ошибок? Попробуйте повторить «$ sql» и посмотреть, что он говорит - возможно, запустить его непосредственно в базе данных, чтобы увидеть, работает ли он там? –

+0

Ошибка, которую я получаю, это ошибка # 1064 Синтаксис –

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') 
      "); 
0

Чтобы быстро узнать, как использовать MySQL, начать использовать класс-оболочку.

Я рекомендую: https://github.com/ajillion/PHP-MySQLi-Database-Class

Использовали это сам, когда я первый перешел от MySQL к MySQLi. Сделал курс обучения намного меньшим.

Посмотрите на источник (он размещен на GitHub, поэтому вам не нужно его загружать, чтобы взглянуть на него).

Также не следует использовать MySQL. Преемник MySQLi более безопасен из-за prepared statements и некоторых других улучшений. PDO будет еще лучше, но он более продвинутый.

Дайте ему попробовать.

0

использование

` 

вокруг имен столбцов, то есть это:

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

должен быть таким:

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

Я предполагаю, что следующая вещь, которую вы будете видеть это ошибка о столбце, не совпадающем со значениями. Пожалуйста, подтвердите чтение и сушите свои запросы.

Смежные вопросы