Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_7_1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
686.08 Кб
Скачать

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-документ следующего содержания.

  1. <HTML>

  2. <HEAD>

  3. <TITLE>HTML форма</TITLE>

  4. </HEAD>

  5. <BODY>

  6. <FORM ACTION="HandleForm6.php" METHOD=POST>

  7. Имя <INPUT TYPE=TEXT NAME="Array_FirstName" SIZE=20><BR>

  8. Фамилия <INPUT TYPE=TEXT NAME= "Array_LastName" SIZE=40><BR>

  9. E-mail адрес <INPUT TYPE=TEXT NAME="Array_Email" SIZE=60><BR>

  10. Комментарии <TEXTAREA NAME="Array_Comments" ROWS=5 COLS=40> </TEXTAREA><BR>

  11. <INPUT TYPE=SUBMIT NAME="SUBMIT" VALUE="Ввести!">

  12. </FORM>

  13. </BODY>

  14. </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-документ в текстовом редакторе следующего содержания.

  1. <HTML>

  2. <HEAD>

  3. <TITLE>Добавление данных в базу данных</TITLE> </HEAD>

  4. <BODY>

  5. <?php

  6. /* Эта страница получает и обрабатывает данные, принятые от формы "form.html". */

  7. // Удаление пробелов в начале и в конце строк.

  8. $FirstName = trim ($_POST[Array_FirstName]);

  9. $LastName = trim ($_POST[Array_LastName]);

  10. $Email = trim ($_POST[Array_Email]);

  11. $Comments = trim ($_POST[Array_Comments]);

  1. // Установка значения переменных для доступа к базе данных.

  2. $Host = "localhost";

  3. $User = "root";

  4. $Password = "";

  5. $DBName = "db1";

  6. $TableName = "Feedback";

  1. $Link = mysql_connect ($Host, $User, $Password);

  2. mysql_select_db($DBName);

  1. $Query = "INSERT into $TableName values ('0', '$FirstName', '$LastName', '$Email', '$Comments')";

  2. print ("Запрос:<BR>$Query<P>\n");

  3. if (mysql_query ($Query)) {

  4. print ("Запрос успешно выполнен!<BR>\n");

  5. } else {

  6. print ("Запрос не может быть выполнен!<BR>\n" . mysql_error());

  7. }

  8. mysql_close ($Link);

  9. ?>

  10. </BODY>

  11. </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 (нажав на имени таблицы среди списка таблиц), можно увидеть добавившуюся запись в таблицу:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]