MyBooks.club
Все категории

Виктор Гольцман - MySQL 5.0. Библиотека программиста

На сайте mybooks.club вы можете бесплатно читать книги онлайн без регистрации, включая Виктор Гольцман - MySQL 5.0. Библиотека программиста. Жанр: Программирование издательство неизвестно,. Доступна полная версия книги с кратким содержанием для предварительного ознакомления, аннотацией (предисловием), рецензиями от других читателей и их экспертным мнением.
Кроме того, на сайте mybooks.club вы найдете множество новинок, которые стоит прочитать.

Название:
MySQL 5.0. Библиотека программиста
Издательство:
неизвестно
ISBN:
нет данных
Год:
неизвестен
Дата добавления:
17 сентябрь 2019
Количество просмотров:
249
Читать онлайн
Виктор Гольцман - MySQL 5.0. Библиотека программиста

Виктор Гольцман - MySQL 5.0. Библиотека программиста краткое содержание

Виктор Гольцман - MySQL 5.0. Библиотека программиста - описание и краткое содержание, автор Виктор Гольцман, читайте бесплатно онлайн на сайте электронной библиотеки mybooks.club
Эта книга предназначена для всех, кто желает освоить СУБД MySQL. Для ее чтения вам не нужны никакие специальные знания – достаточно быть пользователем Windows. Вы узнаете, как установить и запустить MySQL, как создать собственную базу данных, как работать с данными при помощи команд SQL, как администрировать базу данных и оптимизировать ее работу. Разработчики веб-приложений на языках PHP, Perl и Java найдут в этой книге полезные сведения по использованию базы данных MySQL в соответствующих приложениях. Для всех операций, которые вам предстоит выполнить, приводятся подробные пошаговые инструкции, все основные действия поясняются на примере учебной базы данных.

MySQL 5.0. Библиотека программиста читать онлайн бесплатно

MySQL 5.0. Библиотека программиста - читать книгу онлайн бесплатно, автор Виктор Гольцман

Итак, мы завершили создание приложения, которое получает информацию из базы данных. В следующем подразделе мы рассмотрим обратный пример – приложение, которое записывает в базу данные, введенные пользователем на вебстранице.

Ввод данных в базу

В этом подразделе вы узнаете, как создать PHP-приложение для ввода данных в базу. Такие приложения обычно состоят из двух взаимосвязанных страниц. Первая страница представляет собой веб-форму, в которую пользователь может ввести данные. Вторая – собственно PHP-сценарий, обрабатывающий эти данные.

В качестве примера рассмотрим форму саморегистрации нового клиента, где клиент указывает свое имя, телефон и адрес. Создадим в папке htdocs корневой папки XAMPP файл input.php, содержащий следующий код (листинг 4.7).

Листинг 4.7. Форма ввода данных

<html>

<head>

<title>Работа с MySQL</title>

</head>

<body>

<h1>Пожалуйста, заполните следующие поля:</h1>

<!– Создаем форму для ввода данных –>

<!– Обрабатывать введенные данные будет сценарий save.php –>

<form method=»post» action=»save.php»>

<table>

<!– Создаем поле для ввода имени заказчика –>

<tr>

<td>Ваше имя:</td>

<td><input type=»text» name=»CustomerName» value=»»></td>

</tr>

<!– Создаем поле для ввода телефона заказчика –>

<tr>

<td>Телефон:</td>

<td><input type=»text» name=»CustomerPhone» value=»(495)»></td>

</tr>

<!– Создаем поле для ввода адреса заказчика –>

<tr>

<td>Адрес:</td>

<td><input type=»text» name=»CustomerAddress» value=»»></td>

</tr>

</table>

<br>

<!– Создаем кнопку для подтверждения данных –>

<input type=»submit» value=»Отправить»>

</form>

</body>

</html>

На рис. 4.13 показана веб-страница, сгенерированная этим кодом.

Рис. 4.13. Форма ввода данных

Создавая эту форму, я указал, что при ее подтверждении (то есть при нажатии кнопки Отправить) введенные пользователем значения полей будут переданы в сценарий save.php по методу POST. В сценарии save.php мы будем использовать уже известные нам PHP-функции:

• функции подключения к серверу MySQL и выбора базы данных, которые мы рассматривали в подразделе «Подготовительные действия»;

• функцию mysql_query(), которая обеспечивает выполнение SQL-команды на сервере MySQL. Если SQL-команда не предполагает получение данных из базы (такими командами являются, например, команды INSERT, UPDATE, DELETE), то функция возвращает значение TRUE в случае успешного выполнения команды и значение FALSE в случае ошибки;

• функции обработки ошибок, о которых вы узнали в подразделе «Обработка ошибок».

Итак, создадим в папке htdocs корневой папки XAMPP файл save.php, содержащий следующий код (листинг 4.8).

Листинг 4.8. Сохранение данных в базе

<html>

<head>

<title>Работа с MySQL</title>

</head>

<body>

<?php

//Отключаем вывод системных сообщений об ошибках

error_reporting(0);

//Получаем данные из формы input.php

$phone=$_POST[«CustomerPhone»];

//Если номер телефона не введен, то связаться с клиентом невозможно.

//Предлагаем клиенту вернуться к заполнению формы

if(empty($phone) or ($phone == «(495)»))

{

print “<h3>Пожалуйста, введите номер телефона</h3>”;

print “<input type='button' value='Вернуться к редактированию данных'

onClick='history.go(-1)'”;

}

//Если номер телефона введен, продолжаем обработку данных

else

{

//Получаем из формы имя и адрес клиента

$name=$_POST[«CustomerName»];

$address=$_POST[«CustomerAddress»];

//Соединяемся с сервером MySQL

$connection = mysql_connect(«localhost»,»username»,»userpassword»);

if(!$connection) die(“Ошибка доступа к базе данных.

Приносим свои извинения”);

//Выбираем базу данных SalesDept (Отдел продаж)

//В случае ошибки формируем сообщение, записываем его в файл

//и отправляем по электронной почте

if(!mysql_select_db(“SalesDept”))

{

$err_message=date(«Y.m.d H:i:s»).»

«.mysql_errno().» «.mysql_error().»rn»;

error_log($err_message,3,»/mysqlerror.log»);

error_log($err_message,1,» [email protected]»);

die(“Ошибка доступа к базе данных. Приносим свои извинения”);

}

//Устанавливаем кодировку CP-1251

mysql_query(«SET NAMES cp1251»);

//Записываем данные о заказчике в таблицу Customers (Клиенты)

$qresult = mysql_query(«INSERT INTO Customers (name,phone,address)

VALUES

('».$name.»','».$phone.»','».$address.»')»);

//Проверяем результат выполнения команды; в случае ошибки формируем //

сообщение, записываем его в файл и отправляем по электронной почте

if(!$qresult)

{

$err_message=date(«Y.m.d H:i:s»).»

«.mysql_errno().» «.mysql_error().»rn»;

error_log($err_message,3,»/mysqlerror.log»);

error_log($err_message,1,» [email protected]»);

die(“Ошибка при сохранении данных. Приносим свои извинения”);

}

print “<h3>Поздравляем! Регистрация завершена успешно</h3>”;

}

?>

</body>

</html>

Если, например, в форме были введены значения полей Иванов, 157400 и Москва, а/я 255, то вызов функции

$qresult = mysql_query(«INSERT INTO Customers

(name,phone,address)

VALUES

('».$name.»','».$phone.»','».$address.»')»);

после подстановки значений переменных $name, $phone и $address будет выглядеть следующим образом:

$qresult = mysql_query(«INSERT INTO Customers

(name,phone,address)

VALUES

('Иванов','157400','Москва, а/я 225')»);

Если команда INSERT была выполнена успешно, то сценарий save.php выведет на странице соответствующее сообщение (рис. 4.14).

Рис. 4.14. Результат сохранения данных

Мы почти завершили создание приложения, которое записывает информацию в базу данных. Однако нужно сделать важное дополнение, связанное с некорректным сохранением значений, содержащих спецсимволы. Предположим, например, что пользователь вводит на веб-странице в поле Ваше имя значение д'Артаньян. Тогда вызов PHP-функции

mysql_query(“INSERT INTO Customers (name,phone,address)

VALUES

('”.$name.”','”.$phone.”','”.$address.”')”);

приведет к попытке выполнения некорректной SQL-команды

INSERT INTO Customers

(name,phone,address)

VALUES ('д'Артаньян','Телефон','Адрес');

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

mysql_real_escape_string(«<Строка>»[, <Указатель на соединение>]);

Функция mysql_real_escape_string() экранирует строку, полученную в качестве аргумента, то есть перед каждым специальным символом в этой строке (например, перед одинарной кавычкой) помещает обратную косую черту. Например, если в качестве аргумента передана строка д'Артаньян, то функция возвращает значение д\'Артаньян. Таким образом, при вызове PHP-функции

mysql_query(“INSERT INTO Customers (name,phone,address)

VALUES

('”.mysql_real_escape_string($name).”',

'”.mysql_real_escape_string($phone).”',

'”.mysql_real_escape_string($address).”')”);

будет выполнена корректная SQL-команда

INSERT INTO Customers

(name,phone,address)

VALUES ('д\'Артаньян','Телефон','Адрес');

Кроме того, в ряде случаев функция mysql_real_escape_string() позволяет обезопасить PHP-приложение от SQL-инъекций, то есть предотвратить выполнение SQL-команд, которые недобросовестный пользователь может ввести в текстовые поля на веб-странице.

Исправим сценарий save.php, добавив вызов функции mysql_real_escape_string() (листинг 4.9).

Листинг 4.9. Сохранение данных в базе

<html>

<head>

<title>Работа с MySQL</title>

</head>

<body>

<?php

//Отключаем вывод системных сообщений об ошибках

error_reporting(0);

//Получаем данные из формы input.php

$phone=$_POST[“CustomerPhone”];

//Если номер телефона не введен, то связаться с клиентом невозможно.

//Предлагаем клиенту вернуться к заполнению формы


Виктор Гольцман читать все книги автора по порядку

Виктор Гольцман - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mybooks.club.


MySQL 5.0. Библиотека программиста отзывы

Отзывы читателей о книге MySQL 5.0. Библиотека программиста, автор: Виктор Гольцман. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.