PHP Подключение к MySQL
PHP 5 и более поздние версии могут работать с базой данных MySQL, используя:
- Mysqli расширение ("i" означает улучшение)
- PDO (объекты данных PHP)
Более ранние версии PHP использовали расширение MySQL. Тем не менее, это расширение было устаревшим в 2012.
Должен ли я использовать mysqli или PDO?
Если вам нужен короткий ответ, это будет "все, что вам нравится".
Оба mysqli и PDO имеют свои преимущества:
PDO будет работать на 12 различных системах баз данных, в то время как mysqli будет работать только с базами данных MySQL.
Таким образом, если вам нужно переключить ваш проект на использование другой базы данных, PDO делает процесс легким. Необходимо только изменить строку подключения и несколько запросов. С mysqli вам потребуется переписать все включенные в код запросы.
Оба являются объектно-ориентированными, но mysqli также предлагает процедурный API.
Оба поддерживают подготовленные заявления. Подготовленные операторы защищают от внедрения SQL и очень важны для безопасности веб-приложений.
Примеры MySQL как в mysqli, так и в синтаксисе PDO
В этом, и в следующих главах мы показываем три способа работы с PHP и MySQL:
- MySQLi (объектно-ориентированный)
- MySQLi (Процедурные)
- PDO
MySQLi установка
Для Linux и Windows: mysqli расширение автоматически устанавливается в большинстве случаев, когда PHP5 MySQL пакет установлен.
Для получения сведений об установке перейдите по: http://PHP.NET/Manual/EN/mysqli.Installation.php
Установка PDO
Для получения сведений об установке перейдите по: http://PHP.NET/Manual/EN/PDO.Installation.php
Открыть подключение к MySQL
Прежде чем мы сможем получить доступ к данным в базе данных MySQL, мы должны иметь возможность подключиться к серверу:
Пример (mysqli объектно-ориентированный)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
PHP является удивительным и популярным языком!
Обратите внимание на объектно-ориентированный пример выше: $Connect _еррор был сломан до PHP 5.2.9 и 5.3.0. Если необходимо обеспечить совместимость с версиями PHP до 5.2.9 и 5.3.0, используйте следующий код:
Проверить соединение
If (мискли_коннект_еррор ()) {
Die ("сбой подключения к базе данных:". мискли_коннект_еррор ());
}
Пример (mysqli процедурный)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
Пример (PDO)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
Обратите внимание, что в примере PDO выше мы также указали базу данных (MyDB). PDO требуется действительная база данных для подключения. Если база данных не указана, создается исключение.
Совет: Большое преимущество PDO состоит в том, что он имеет класс исключений для обработки любых проблем, которые могут возникнуть в наших запросах к базе данных. Если в блоке try {} создается исключение, сценарий прекращает выполнение и перетекает непосредственно в первый блок catch () {}.
Закройте соединение
Соединение будет закрыто автоматически при завершении сценария. Чтобы закрыть подключение, выполните следующие действия.
Пример (mysqli объектно-ориентированный)
$conn->close();
Пример (mysqli процедурный)
mysqli_close($conn);
Пример (PDO)
$conn = null;