2013-11-07 5 views
-1

У меня возникают проблемы с вводом данных из php-формы на моем локальном хосте в MySQL. Я отправлю код ниже.Данные PHP не вставляются в MySQL

$zip = $_POST['zip']; 
$city = $_POST['city']; 
$sql = "INSERT INTO zipcodes (zip, city) VALUES ('$zip', '$city')"; 

if (mysqli_query($con,$sql)) 
{ 
echo "Order Details DB Updated successfully"; 
} 
else 
{ 
echo "Error creating database: " . mysqli_error($con); 
} 

У меня есть $ con, указанный выше, и соединение работает.

Это показывает, что я правильно подключаюсь к своей БД, но он просто не вводит правильные данные, которые я вводил в форму. Я не уверен, почему он не войдет, когда у меня будет правильное соединение. Любая помощь будет оценена по достоинству. Спасибо!

+3

какая ошибка у вас? Вы ** определенно ** должны избегать ваших данных сообщения - посмотрите на SQL-инъекцию и используйте 'mysqli_real_escape_string' –

+0

« ... он просто не вводит правильные данные, которые я вводил в форму ». - Он вводит какие-либо данные? – jboneca

+1

1. echo $ zip и $ city до $ sql, чтобы убедиться, что вы получаете правильные данные, 2. сделайте это, наш друг @scrowler сказал вам, 3. если вы все еще получаете ошибку, разместите здесь фактическую ошибку –

ответ

0

Некоторые шаги отладки, которые могут помочь: 1) Убедитесь, что форма фактически отправляется скрипту, используя оператор вверху, который выглядит как if (count ($ _ POST)> 0) exit ('form provided «);

Если это не удается, то ваша форма никогда не ударяет по сценарию. Убедитесь, что атрибуты тега верны на странице HTML.

2) Добавьте эти строки перед созданием оператора SQL: exit (print_r ($ _POST, 1));

Убедитесь, что POST super global содержит данные, которые вы вводите в поля формы.

Предположительно, один из этих двух шагов покажет вашу проблему. Если нет, попробуйте это: В верхней части страницы выполните: phpinfo(); Выход();

Загрузите это в веб-браузере и выполните поиск по страницам «mysqli» и убедитесь, что ваша установка php поддерживает mysqli.

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

PS. Вы действительно не должны вводить необработанные пользовательские данные в SQL-запрос. Если у вас есть поддержка mysqli, вместо этого используйте подготовленные инструкции. Сначала они могут показаться немного чуждыми, но как только вы привыкнете к ним, вы никогда не вернетесь.

PPS. Вместо использования функционально-ориентированного подхода к mysqli вместо этого используйте ориентированный на объект интерфейс. Это немного более дружелюбно, и IMO, легче отлаживать.

PPPS. Если все это не удается, получите последнюю ошибку из базы данных.

Cheers

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