
3 Отправка данных
Процесс добавления информации в таблицу похож на создание таблицы: используется та же самая функция, а вот SQL-запрос будет иметь другой вид.
$Query="INSERT into $TabName values ('value1', 'value2', 'value3', и т. д.)";
mysql_query("DatabaseName",$Query,$Link);
Запрос начинается со строки "INSERT into $TabName values". Затем в скобках перечисляются значения столбцов, взятые в одинарные кавычки и разделенные запятыми. Количество значений должно точно совпадать с имеющимися в таблице столбцами, иначе запрос не будет работать. После этого запрос направляется на сервер MySQL с помощью функции "mysql_query()".
Чтобы наглядно показать, как это работает, используем HTML-форму, в которую пользователь вводит имя, фамилию, адрес электронной почты и комментарии. PHP-сценарий, обрабатывающий форму, поместит полученную информацию в базу данных.
Ввод данных в БД из HTML-формы
1. Откройте текстовый редактор и создайте новый HTML-документ следующего содержания.
<HTML>
<HEAD>
<TITLE>HTML форма</TITLE>
</HEAD>
<BODY>
<FORM ACTION="HandleForm6.php" METHOD=POST>
Имя <INPUT TYPE=TEXT NAME="Array_FirstName" SIZE=20><BR>
Фамилия <INPUT TYPE=TEXT NAME= "Array_LastName" SIZE=40><BR>
E-mail адрес <INPUT TYPE=TEXT NAME="Array_Email" SIZE=60><BR>
Комментарии <TEXTAREA NAME="Array_Comments" ROWS=5 COLS=40> </TEXTAREA><BR>
<INPUT TYPE=SUBMIT NAME="SUBMIT" VALUE="Ввести!">
</FORM>
</BODY>
</HTML>
Строки с № 1 по № 4 создают стандартный HTML-зaгoлoвoк.
Строка № 6 создаёт форму.
Строки с № 7 по № 10 создают четыре текстовых поля.
Вы можете сделать форму более эстетичной, чем эта, но не забудьте записать имена переменных ввода — они потребуются в PHP-сценарии, который будет обрабатывать эту форму.
Строка № 11 добавляет кнопку "Ввести".
Строки с № 12 по № 14 закрывают форму и HTML-страницу.
2. Сохраните страницу под именем "form.html" и загрузите ее на Web-сервер.
Очень важно помнить названия полей ввода в HTML-формах, чтобы можно было сослаться на них в РНР-сценарии.
Напишем сценарий "HandleForm6.php", который берет сгенерированные формой данные и помещает их в базу данных.
3. Создайте новый PHP-документ в текстовом редакторе следующего содержания.
<HTML>
<HEAD>
<TITLE>Добавление данных в базу данных</TITLE> </HEAD>
<BODY>
<?php
/* Эта страница получает и обрабатывает данные, принятые от формы "form.html". */
// Удаление пробелов в начале и в конце строк.
$FirstName = trim ($_POST[Array_FirstName]);
$LastName = trim ($_POST[Array_LastName]);
$Email = trim ($_POST[Array_Email]);
$Comments = trim ($_POST[Array_Comments]);
// Установка значения переменных для доступа к базе данных.
$Host = "localhost";
$User = "root";
$Password = "";
$DBName = "db1";
$TableName = "Feedback";
$Link = mysql_connect ($Host, $User, $Password);
mysql_select_db($DBName);
$Query = "INSERT into $TableName values ('0', '$FirstName', '$LastName', '$Email', '$Comments')";
print ("Запрос:<BR>$Query<P>\n");
if (mysql_query ($Query)) {
print ("Запрос успешно выполнен!<BR>\n");
} else {
print ("Запрос не может быть выполнен!<BR>\n" . mysql_error());
}
mysql_close ($Link);
?>
</BODY>
</HTML>
Строки с № 1 по № 4 создают стандартный HTML - заголовок.
Строки с № 5 по № 11 открывают PHP-раздел страницы и удаляют лишние пробелы из полей ввода данных, сохраняет данные с формы в определенных переменных.
Строки с № 13 по № 17 задают переменные для доступа в базу данных.
Строка № 18 осуществляет соединение с сервером MySQL.
Строка № 19 выбирает и инициализирует необходимую базу данных для работы.
Строка № 20 создаёт запрос, который начинается с обязательного кода "INSERT into $TableName values".
Затем перечисляются пять значений — по одному для каждого столбца. Каждое из этих значений взято в одинарные скобки и отделено от последующего запятой.
Так как столбцу "id" был задан автоматический инкремент, то можно использовать в качестве значения число "0". Это значение недопустимо для данного поля, поэтому оно будет автоматически исправлено, а у столбца "id" появится следующий порядковый номер.
Строка № 21 позволяет упростить отладку запроса, путём дублирования сообщения в браузере.
Если при работе с базой возникли какие-либо трудности, прежде всего проверьте логику и правильность написания запроса. Вряд ли вы захотите, чтобы пользователь видел запрос, но этот прием можно с успехом использовать на этапе отладки программы.
Строки с № 22 по № 26 создают условную конструкцию, которая выполняет определенные действия, исходя из результатов запроса. Все функции обращения к БД, кроме действий собственно с данными, выдают значение "истина" при успешном выполнении и "ложь" во всех остальных случаях.
Строки с № 27 по № 30 закрывают сеанс связи с сервером MySQL, PHP-раздел и HTML-документ.
4. Сохраните сценарий под именем "HandleForm6.php", загрузите его на сервер в один каталог с файлом "form.html" и протестируйте обе страницы в браузере.
Инструкция запроса на добавление информации в базу данных достаточно проста. Однако не забывайте, что количество значений в скобках должно соответствовать числу столбцов в таблице.
Если вы хотите проверять инструкции SQL так, чтобы пользователь явно не видел их, добавьте в вашу страницу следующую строку кода:
print ("<! --Запрос $Query-->\n");
Теперь запрос будет выглядеть как HTML-комментарий, который можно просмотреть, открыв исходный текст.
Открыв в phpMyASdmin таблицу Freedback (нажав на имени таблицы среди списка таблиц), можно увидеть добавившуюся запись в таблицу: