2011-12-20 6 views
-3

Я сделал свое исследование, но не нашел ничего конкретного для моей проблемы. У меня есть HTML-форма, запрашивающая данные, а затем php-скрипт, который предположительно помещает данные в базы данных MySQLВставка данных из html в php в базу данных mysql

когда я попробовать его на моем локальном хосте, я не получаю ошибки , но когда я проверить на PHPMyAdmin, нет никаких новых данных

HTML-:

<html> 
<head> 

<form action="insert.php" method="post"> 
ID: <input type="text" name="ID"><br> 
Family ID: <input type="text" name="Family_ID"><br> 
First Name: <input type="text" name="First_Name"><br> 
Last Name: <input type="text" name="Last_Name"><br> 
Gender: <input type="text" name="Gender"><br> 
Birthday: <input type="text" name="Birthday"><br> 
Birthplace: <input type="text" name="Birthplace"><br> 
Father ID: <input type="text" name="Father_ID"><br> 
Mother ID: <input type="text" name="Mother_ID"><br> 
Maiden Name: <input type="text" name="Maiden_Name"><br> 
Mariage ID: <input type="text" name="Mariage_ID"><br> 
Deathdate: <input type="text" name="Deathdate"><br> 
Deathplace: <input type="text" name="Deathplace"><br> 
Grave Location: <input type="text" name="Grave_Location"><br> 
Email: <input type="text" name="Email"><br> 
Phone: <input type="text" name="Phone"><br> 
Address: <input type="text" name="Adress"><br> 
Bio: <input type="text" name="Bio"><br> 
Studies: <input type="text" name="Travail"><br> 
Travail: <input type="text" name="Travail"><br> 
Photo: <input type="text" name="Photo"><br> 
Fete: <input type="text" name="Fete"><br> 
<input type="Submit"> 

</form> 
</head> 
<body> 
</body> 
</html> 

РНР:

$username='root'; 
$password='121395'; 
$database='genealogy'; 
mysql_connect("localhost",$username,$password); 
@mysql_select_db($database) or die('Unable to select database'); 
echo "Connected to MySQL"; 

$ID=mysql_real_escape_string($_POST['ID']); 
$Family_ID=mysql_real_escape_string($_POST['Family_ID']); 
$First_Name=mysql_real_escape_string($_POST['First_Name']); 
$Last_Name=mysql_real_escape_string($_POST['Last_Name']); 
$Gender=mysql_real_escape_string($_POST['Gender']); 
$Birthday=mysql_real_escape_string($_POST['Birthday']); 
$Birthplace=mysql_real_escape_string($_POST['Birthplace']); 
$Father_ID=mysql_real_escape_string($_POST['Father_ID']); 
$Mother_ID=mysql_real_escape_string($_POST['Mother_ID']); 
$Maiden_Name=mysql_real_escape_string($_POST['Maiden_Name']); 
$Mariage_ID=mysql_real_escape_string($_POST['Mariage_ID']); 
$Deathdate=mysql_real_escape_string($_POST['Deathdate']); 
$Deathplace=mysql_real_escape_string($_POST['Deathplace']); 
$Grave_Location=mysql_real_escape_string($_POST['Grave_Location']); 
$Email=mysql_real_escape_string($_POST['Email']); 
$Phone=mysql_real_escape_string($_POST['Phone']); 
$Address=mysql_real_escape_string($_POST['Adress']); 
$Bio=mysql_real_escape_string($_POST['Bio']); 
$Travail=mysql_real_escape_string($_POST['Travail']); 
$Photo=mysql_real_escape_string($_POST['Photo']); 
$Fete=mysql_real_escape_string($_POST['Fete']); 


$query = "INSERT INTO bouan (ID, Family_ID, First_Name, Last_Name, Gender, Birthday, 
Birthplace, Father_ID, Mother_ID, Maiden_Name, Mariage_ID,Deathdate, Deatchplace, 
Grave_Location, Email, Phone, Adress, Bio, Travail, Photo, Fete) VALUES 
('$ID','$Family_ID','$First_Name','$Last_Name','$Gender','$Birthday','$Birthplace', 
'$Father_ID','$Mother_ID','$Maiden_Name','$Mariage_ID','$Deathdate','$Deathplace', 
'$Grave_Location','$Email','$Phone','$Address','$Bio','$Travail','$Photo','$Fete')"; 

mysql_query($query) or die ("Error updating database"); 

mysql_error(); 
mysql_close(); 

Все я получаю в ответ является:

Подключение к базе данных MySQLError обновления

что не так? (Я сделал мое исследование, в течение 2-х дней FYI) им жаль, что им новое для этого, не могу помочь это

+0

попытайтесь повторить данные своего сообщения – hungneox

+3

Существует так много ошибок и небезопасности в отношении этого кода. Я прошу вас сразу же его отключить и запустить некоторые учебные пособия «save to mysql», а также некоторые основные проверки безопасности PHP/MySQL. – Dunhamzzz

+0

Не забывайте, что в PHP есть массивы по какой-то причине, они могут облегчить вашу жизнь. Меньше кода = меньше ошибок. – hakre

ответ

1

Ваш первый подход выглядит хорошо, но по соображениям безопасности вы можете найти опубликованные переменные, как показано ниже. $ID=mysql_real_escape_string($_POST['ID']); Метод mysql_real_escape_string() удалит ненужные символы и сделает его безопасным.

В конце попробуйте распечатать запрос, который вы выполняете, используя инструкцию echo или print.

echo $query; 

Выполнение результата на вашем phpmyadmin. Phpmyadmin сообщит вам, какие ошибки в вашем запросе mysql, и следуя этим инструкциям, вы можете изменить свой запрос.

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

+0

спасибо за ваш прямой ответ, а не кричать на меня, потому что я начинаю – user1107703

+0

Почему я должен кричать на вас? у нас есть это сообщество, чтобы помогать друг другу. Даже я ученик, как вы. Вы можете задать любой вопрос, но хорошее описание проблемы поможет вам получить лучшее решение. Наслаждаться... :) –

3

Вы должны, вероятно,

  • обеспечивают mysql_query с реальным запросом
  • санитарной обработки данных перед кормлением это SQL
  • использовать {$_POST['whatever']}, когда вы хотите, чтобы встроить его в строку
  • проверить возвращаемое значение mysql_query
  • узнайте кое-что.
0

Используйте mysql_error() для получения последней ошибки. Кроме того, я вижу потенциальную ошибку в запросе:

'`$ID`','`$Family_ID`','`$First_Name`' -- you may try to remove ` sign 
0

пытаются сделать эти 2 вещи, сначала добавьте атрибут значение для ваших всех входных элементов например)

<input type="text" name="Family_ID" value=""> 

, потому что он не получит в $ _POST переменная, если вы отправляете пустое значение в текстовое поле без атрибута значения

попытайтесь добавить зарегистрированные имена, чтобы вы могли отслеживать карту со значениями и удалять ` от вашего поля и значения.

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