Изграждане на PHP връзка към MySQL

Помощен център

Изграждане на PHP връзка към MySQL

PHP5 и следващите версии могат да работят с MySQL база данни, като използват разширение MySQLi (i означава подобрено - improved) или PDO (PHP Data Objects).

По-ранните версии на PHP използваха MySQL разширение (extension), което обаче бе премахнато през 2012 г.

Кой начин на свързване да ползваме - MySQLi или PDO?

Ако имате нужда от кратък отговор, той ще бъде - Който ви харесва повече.

Както MySQLi, така и PDO имат своите предимства:

PDO работи върху 12 различни системи за бази данни, докато MySQLi ще работи само с MySQL бази данни.

Ако трябва да промените проекта си да ползва друга база данни, използването на PDO ще улесни процеса. Трябва само да промените кода за свързване и няколко заявки.

В същата ситуация ако ползвате MySQLi ще трябва да пренапишете целия код заедно със заявките.

И двата метода са обектно-ориентирани, но MySQLi предлага и процедурен API интерфейс.

И двата метода поддържат Prepared Statements, които защитават от SQL инжекции и са много важни за сигурността на уеб приложенията.

В статията ще ви покажем как може да изградите връзка към MySQL база данни както чрез MySQLi (обектно-ориентирана и процедурна), така и в чрез PDO синтаксис.

Пример с изграждане на MySQLi обектно-ориентирана връзка

connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
echo "MySQLi Object-Oriented - Connected Successfully";
$conn->close();
?>

Пример с изграждане на MySQLi процедурна връзка

Пример с изграждане на PDO връзка

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "PDO - Connected Successfully"; 
    }
catch(PDOException $e)
    {
    echo "Connection failed: " . $e->getMessage();
    }
$conn = null;
?>

Предимство на PDO разширението е, че има клас на изключения (exception), за да се справя с всички проблеми, които могат да възникнат в заявките към базата данни. Ако се получи изключение в try {} блока, скриптът спира изпълнението и намира директно първия catch () {} блок .

Тест на кода от примерите

За да тестваме дали кода в примерите работи създадохме база данни, потребител и парола в cPanel, създадохме и файл mysql-connection.php, в който въведохме само кода без никакъв HTML, като между отделните блокове код вмъкнахме кода за да може статус съобщенията да бъдат на отделни редове:


"; ?>

Във файла заменихме database, username и password с информацията за нашата база данни.

mysql php connection

Затваряне на връзката към MySQL сървъра

Връзката към сървъра се затваря автоматично след като всичк команди в скрипта бъде изпълнени. Добра практика е да се добави като последен ред команда за затваряне на връзката. Обърнете внимание, че синтаксиса на командите при различните методи е различен:

МетодКоманда
MySQLi Object-Oriented$conn->close();
MySQLi Proceduralmysqli_close($conn);
PDO$conn = null;

В следващи статии ще ви покажем как може да управлявате съдържанието в MySQL чрез PHP и SQL команди тъй като това е най-успешния тренд в разработването на уеб проекти.