Без з'єднання з базою даних (БД) сьогодні не працює практично жоден сайт. тому і ми розглянемо як з'єднуватися з MySQL за допомогою php.
Створення з'єднання з БД на PHP різними способами:
1) старий дідівський спосіб підключення до MySQL:
$ Conn = mysql_connect ($ db_hostname, $ db_username, $ db_password) or die ( "Ні підключення до сервера");
mysql_select_db ($ db_database, $ conn) or die ( "Ні вдалося з'єднатися з БД");
- пояснення до змінних нижче.
При цьому використовуються функції:
- mysql_connect () - для підключення до сервера;
- mysql_select_db () - для підключення до БД;
При цьому постійно перевіряємо на наявність помилки у такий спосіб: or die ( "Помилка така то"); - перекладається як або помри з такою-то помилкою - щоб відразу знайти де помилка.
Приклад з'єднання з БД на php з вибіркою з таблиці
// змінні для з'єднання з БД
$ Host = 'localhost'; / хост
$ Username = 'root'; // пароль для підключення до БД
$ Password = ''; // пароль для подлюченія до бази даних - на локальному комп'ютері він може мати пусте значення.
$ Database_name = 'my-dolgi'; // ім'я БД
// старий спосіб злився з БД
mysql_connect ($ host, $ username, $ password) or die ( "Не можу з'єднатися створити з'єднання");
// вибрати БД. Якщо помилка - вивести
mysql_select_db ($ database_name) or die (mysql_error ());
// Виконати запит. Якщо помилка - виводимо
$ Result = mysql_query ( 'SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5') or die (mysql_error ());
echo "Кому я повинен по спадаючій:
";
// Вибірка результатів запиту
while ($ row = mysql_fetch_assoc ($ result)) echo $ row [ 'Name']. "З боргом". $ Row [ 'Money']. "Рублів.
";
>
// звільнення використовуваної пам'яті
mysql_free_result ($ result);
// Закриваємо з'єднання
mysql_close ();
2) Більш прогресивний процедурний стиль - з'єднання з БД за допомогою mysqli:
- зручніше;
- швидше до 40 разів;
- підвищено безпеку;
- є нові можливості і функції;
Приклад з'єднання з БД на php з вибіркою з таблиці
// злився з БД
$ Link = mysqli_connect ( 'localhost', 'username', 'password', 'name-database'); // тут вводимо прям дані ваші: ім'я користувача, пароль і ім'я БД, перше поле зазвичай localhost
// вивід помилки з'єднання
if (! $ link) echo "Помилка підключення до БД. Код помилки:". mysqli_connect_error ();
exit;
>
Зверніть увагу - скрізь використовується mysqli. а не mysql.
// Виконати запит. Якщо помилка - виводимо
if ($ result = mysqli_query ($ link, 'SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5'))
echo "Кому я повинен по спадаючій:
";
// Вибірка результатів запиту
while ($ row = mysqli_fetch_assoc ($ result)) echo $ row [ 'Name']. "З боргом". $ Row [ 'Money']. "Рублів.
";
>
// звільнення використовуваної пам'яті
mysqli_free_result ($ result);
Як бачимо, деякі моменти помінялися (виділені курсивом).
3) Об'єктно-орієнтований метод підключення до бд MySQL - за допомогою методів і класів:
Мінуси: складніше і менш чутливий до помилок.
Плюси: стислість і зручність для програмістів з досвідом.
$ Conn = new mysqli ($ db_hostname, $ db_username, $ db_password, $ db_database);
if ($ conn-> connect_errno) die ($ conn-> connect_error);
> else
тут в принципі все інтуїтивно зрозуміло:
- $ Db_hostname - це хост (в основному localhost),
- $ Db_database - ім'я БД;
- $ Db_username і $ db_password - ім'я користувача та пароль відповідно!
Приклад з'єднання з БД на php стиль ООП з вибіркою з таблиці
// злився з БД
$ Mysqli = new mysqli ( 'localhost', 'username', 'password', 'name-database'); // тут вводимо прям дані ваші: ім'я користувача, пароль і ім'я БД, перше поле зазвичай localhost
// вивід помилки з'єднання
if ($ mysqli-> connect_error) die ( 'Помилка підключення до БД: ('. $ mysqli-> connect_errno. ')'. mysqli_connect_error);
>
Зверніть увагу - скрізь використовується mysqli. а не mysql. і на відміну від попереднього методу з'являються стрілочки "->", які показують, що це стиль ООП.
// Виконати запит. Якщо помилка - виводимо
if ($ result = $ mysqli-> query ( 'SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5'))
echo "Кому я повинен по спадаючій:
";
// Вибірка результатів запиту
while ($ row = $ result-> fetch_assoc ()) echo $ row [ 'Name']. "З боргом". $ Row [ 'Money']. "Рублів.
";
>
// звільнення використовуваної пам'яті
$ Result-> close ();
Завдання вам таке - знайти відмінності.
4) Зв'язок з БД за допомогою PDO:
При з'єднанні з базою даних MySQL використовуються підготовлені вираження (методом prepare) і в результаті більша безпека і сильно збільшує швидкодію.
config файл від попереднього методу! - такий же
// PDO стиль для зв'язку з MySQL
if ($ stmt = $ mysqli-> prepare ( "SELECT Name, Voney FROM Dolg ORDER BY Money <. LIMIT 5"))
$ Stmt-> bind_param ( "i", $ summa);
$ Summa = 100000;
// запускаємо виконання
$ Stmt-> execute ();
echo "Кому я повинен по спадаючій:
";
// Вибірка результатів запиту
while ($ stmt-> fetch ()) echo $ col1. "З боргом". $ Col2. "Рублів.
";
>
// звільнення використовуваної пам'яті
$ Stmt-> close ();
// Закриваємо з'єднання
$ Mysqli-> close ();
Як бачимо, тут набагато складніше і треба вивчати PDO - це окрема тема.