ЛУЧШИЙ САЙТ ДЛЯ РАЗРАБОТЧИКОВ
×

PHP учебник

PHP HOME PHP Intro PHP Install PHP Syntax PHP Variables PHP Echo / Print PHP Data Types PHP Strings PHP Constants PHP Operators PHP If...Else...Elseif PHP Switch PHP While Loops PHP For Loops PHP Functions PHP Arrays PHP Sorting Arrays PHP Superglobals

PHP Forms

PHP Form Handling PHP Form Validation PHP Form Required PHP Form URL/E-mail PHP Form Complete

PHP Advanced

PHP Arrays Multi PHP Date and Time PHP Include PHP File Handling PHP File Open/Read PHP File Create/Write PHP File Upload PHP Cookies PHP Sessions PHP Filters PHP Filters Advanced PHP Error Handling PHP Exception

MySQL Database

MySQL Database MySQL Connect MySQL Create DB MySQL Create Table MySQL Insert Data MySQL Get Last ID MySQL Insert Multiple MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML Parsers PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Intro AJAX PHP AJAX Database AJAX XML AJAX Live Search AJAX RSS Reader AJAX Poll

PHP Examples


PHP Reference

PHP Overview PHP Array PHP Calendar PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones


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;