Вставка данных из html в php в базу данных mysql - PullRequest
0 голосов
/ 20 декабря 2011

Я провел исследование, но не нашел ничего достаточно конкретного для моей проблемы У меня есть 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>

php:

$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 дней к вашему сведению) мне жаль, что я новичок в этом, не могу помочь

Ответы [ 4 ]

3 голосов
/ 20 декабря 2011

Тебе, наверное,

  • предоставить mysql_query реальный запрос
  • очистить данные перед передачей в sql
  • используйте {$_POST['whatever']}, когда хотите вставить его в строку
  • проверить возвращаемое значение mysql_query
  • выучить одну или две вещи.
1 голос
/ 20 декабря 2011

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

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

echo $query;

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

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

0 голосов
/ 20 декабря 2011

попробуйте сделать эти 2 вещи, сначала добавьте атрибут value ко всем вашим элементам ввода, например)

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

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

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

0 голосов
/ 20 декабря 2011

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

'`$ID`','`$Family_ID`','`$First_Name`' -- you may try to remove ` sign
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...