PDO для PHP и MySQL

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

После практических исследований версия языка программирования PHP получает статус рекомендуется. В настоящее время рекомендуемая и стабильная версия PHP 5.4. Бета версия PHP 5.6 тестируется. Как только версия PHP 5.5 станет стабильной ей присвоят статус рекомендуется. Так будет происходить с каждой новой версией PHP.

PHP постоянно обновляется нам как программистам необходимо знать что в новой версии PHP появилось а что убрали. Появление новых функции в PHP повышают скорость и стабильность работы языка программирования.

Подключение к базе данных PDO

PDO (PHP Data Objects) – простой инструмент для доступа к базам данных на языке программирования PHP. После создания объекта PDO соединение с базой данных устанавливаться автоматически. Всё что нужно, это заполнить строки хост имя и пароль к базе данных.

к меню ↑

Подключение к MySQL

Перед тем как выполнить подключение к базе данных убедитесь что ваш хостинг провайдер использует нужную версию PHP. Объекты PDO для подключения к базе данных встроены начиная с версии PHP 5.1. Такой способ подключение к MySQL легче и проще.

Создадим файл db.php, и как обычно сначала пишем уведомления пользователю о том что происходит после нажатия кнопки отправить.

$there_email = 'E-mail существует!';
$ok_table = 'Таблица создана!';

Дальше нужно правильно заполнить список переменных. Подробности о подключении PDO здесь.

//подключение к базе данных
$host = 'хост';
$dbname = 'имя базы данных';
$user = 'пользователь базы данных';
$password = 'пароль к базе данных';

try {
$db = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->exec("set names utf8");

Обратите внимание на set names utf8 — это кодировка базы данных. Если у Вас база данных в другой кодировке, укажите в какой. На этом подключение подключение к MySQL законченно.

к меню ↑

Создать таблицу в базе данных

Что бы сделать запись в базу данных нам нужна таблица, если её нет, куда записывать. Для этого в MySQL открываем закладку SQL в поле вставляем код ниже и выполняем команду.

CREATE TABLE users_mail (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(50),
reg_date TIMESTAMP )

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

// создать таблицу sql
$sql = "CREATE TABLE users_mail (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(50),
reg_date TIMESTAMP
)";
if($db->exec($sgl) !== false) echo '<script>alert("'.$ok_table.'");location.replace("cookie.php");</script>';

Поясняю что мы создали: название таблицы users_mail, идентификатор каждой записи id INT(6), в строке email будет записываться электронный адрес пользователя не больше чем 50 символов, и последнее, дата записи в базу данных reg_date TIMESTAMP.

Название столбцов в mysql для записи электронного адреса пользователя
Весь список столбцов в созданной таблице mysql
к меню ↑

Запрос к выполнению

После того как создана таблица, нужно выполнить зарос к созданной таблице. Подробное описание запросов и их выполнение смотрите на странице PDO::prepare.

Вот запрос к нашей созданной таблице в базе данных.

$MTS = $db->prepare('SELECT id FROM users_mail WHERE email=:email');
$MTS->bindParam(':email', $email);

bindParam — привязывает параметр запроса к переменной, подробности на сайте php.net

Запускает подготовленный запрос на выполнение, метод execute().

$MTS->execute();

Всё теперь запись в базу данных готова.

к меню ↑

Сравнить записи

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

if($MTS->rowCount()==0) {
$MTS = $db->prepare('INSERT INTO users_mail (email) value (:email)');
$MTS->bindParam(':email', $email, PDO::PARAM_STR);
$MTS->execute();
echo '<script>alert("'.$ok.'");location.replace("cookie.php");</script>';
} else {
echo '<script>alert("'.$there_email.'");location.replace("cookie.php");</script>';
}

У меня были проблемы с массивом, спасибо ребятам с ХешКод помогли разобраться.

Если в базе данных уже существует электронный адрес, окно alert покажет уведомление: E-mail существует!

к меню ↑

Закрыть соединение PDO

//Закрытие соединения с базой данных
$db = null;
}
catch(PDOException $e) {
echo $e->getMessage();
}
exit();// по желанию

$db = null; — закрывает соединение с базой данных.

Класс PDOException уведомляет о ошибке, вызываемые PDO. Дополнительную информацию об этом смотрите раздел Класс PDOException.

Если за комментировать exit(), после уведомления о том что E-mail существует! всплывающее окно добавится в куки.

к меню ↑

Заключение

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

htmlhook.ru | Скрипты для веб-приложений