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, выполнили запись и сравнили уже существующею запись в базе данных. На этом, тема работа с куки завершена.

1 комментарий на тему “PDO для PHP и MySQL”

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML -теги и атрибуты: <a href= http://pixelcom.crimea.ua/"" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>