PHP 5, а затем может работать с использованием базы данных MySQL:
- MySQLi расширение (the "i" stands for improved)
- PDO (PHP Data Objects)
Более ранние версии PHP используется расширение MySQL. Однако это расширение было устаревшим в 2012 году.
Должен ли я использовать MySQLi или PDO?
Если вам нужен короткий ответ, это будет "Whatever you like" .
Оба MySQLi и PDO имеют свои преимущества:
PDO будет работать на 12 различных систем баз данных, где, как MySQLi будет работать только с базами данных MySQL.
Итак, если вы должны переключить свой проект, чтобы использовать другую базу данных, PDO делает этот процесс простым. Вам нужно только изменить строку подключения и несколько запросов. С MySQLi, вам нужно будет переписать весь код - запросы включены.
Оба объектно-ориентированный, но MySQLi также предлагает процедурный API.
Оба поддерживают Подготовленные заявления. Подготовленные заявления защиты от инъекции SQL, и очень важно для обеспечения безопасности веб-приложений.
MySQL Примеры в обоих MySQLi и PDO Синтаксис
В этом и в следующих главах мы покажем три способа работы с PHP и MySQL:
- MySQLi (object-oriented)
- MySQLi (procedural)
- 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 Object-Oriented)
<?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";
?>
Обратите внимание на объектно-ориентированном примере выше: $ connect_error не была нарушена до PHP 5.2.9 и 5.3.0. Если вам необходимо обеспечить совместимость с PHP версии до 5.2.9 и 5.3.0, используйте следующий код вместо этого:
// Проверьте подключение
если ( mysqli_connect_error() ) {
die("Database connection failed: " . mysqli_connect_error() к die("Database connection failed: " . mysqli_connect_error() );
}
Пример (MySQLi Procedural)
<?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 является то , что он имеет класс исключений для обработки любых проблем , которые могут возникнуть в наших запросах к базе данных. Если исключение в попытке {} блока, скрипт прекращает выполнение и переходит непосредственно к первому catch() {} блока.
Закройте соединение
Соединение будет закрыто автоматически, когда заканчивается сценарий. Для того, чтобы, прежде чем закрыть соединение, используйте следующее:
Пример (MySQLi Object-Oriented)
$conn->close();
Пример (MySQLi Procedural)
mysqli_close($conn);
Пример (PDO)
$conn = null;