С MySQL можно работать напрямую, а можно и через расширение. Например, PDO (PHP Data Objects). Одно из главных преимуществ в работе с PDO это ее универсальность. Расширение может работать со многими движками БД.
Причем синтаксис не изменяется, что позволяет переключаться между БД просто изменив настройки подключения.
Подключение PDO
$opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_PERSISTENT => true ]; try { $dbh = new PDO('mysql:host=localhost;dbname='название ДБ'', 'логин', 'пароль', $opt); } catch (PDOException $e) { die($e->getMessage()); }
$opt - это необязательная опция
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION - обработка ошибок. В 8 версии PHP - этот режим включен по умолчанию.
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC - выборка данных по умолчанию. PDO::FETCH_ASSOC возвращает ассоциативный массив где ключем является имя столбца а значение ее содержимое
PDO::ATTR_EMULATE_PREPARES => false - обработка подготовленных выражений. В режиме false за обработку отвечает сама СУБД
PDO::ATTR_PERSISTENT => true - держит постоянное соединение с базой данных. Иногда это полезно. При постоянном подключении запрос кешируется и выдается при новом запросе. Это ускоряет процесс работы.
$dbh = new PDO('mysql:host=localhost;dbname='название ДБ'', 'пароль', '',$opt) - здесь думаю понятно. Создаем объет с которым и будем работать.
try/catch перехватывает исключения
Создание таблицы
$sql = 'CREATE TABLE `user` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `login` VARCHAR(300) NULL, `data` DATA NUL PRIMARY KEY (id)) ENGINE = InnoDB'; $sth = $dbh -> exec($data)
Создаем таблицу 'user' где id является первичным ключом с автоинкрементом (данные будут самостоятельно увеличиваться на 1)
Запись в таблицу user
$sql = "INSERT INTO `user` ( `login`, `data` ) VALUES (?,?)"; $data = array( 'Логин', date('Y-m-d H:i') ); $sth = $dbh -> prepare($sql); $sth -> execute($data);
prepare () создаёт подготовленные запросы. Если в них есть динамические или пользовательские данные лучше использовать этот метод.
Чтение данных из таблицы
$sql = "SELECT * FROM `user` WHERE `id` = :id"; $data = array('id' => $id ); $sth = $dbh -> prepare($sql); $sth -> execute($data); $array = $sth -> fetchAll();
Опять-таки используем подготовленные запросы, только в этот раз конструкция немного другая. Вместо знака "?" мы пишем :id . В дальнейшем можно использовать обе конструкции, кому какая нравится.
Здесь мы получим данные столбца таблицы 'user' с нужным id. Данные возвращаются в виде массива
Чтение последней записи таблицы
$sql = "SELECT * FROM content ORDER BY ID DESC LIMIT 1"; $sth = $dbh -> prepare($sql); $sth -> execute(); $array = $sth -> fetchAll();
Обновление данных
$sql = "UPDATE `user` SET `login` = :login, `data` = :data, WHERE id = $id"; $data = array( 'login' => $login, 'data' => $data ); $sth = $dbh -> prepare($sql); $sth -> execute($data);
Конечно -это самые простые запросы. Но в них можно понять логику работы PDO/
Фактически сами запросы не меняются, а меняется логика их обработки.
В своих приложениях я использую именно PDO, что и вам рекомендую.
P.S
Хотите быстро создать продающую страницу? Регистрируйтесь и создавайте. Вот инструкция по быстрому старту