Php функція підключення до MySQL. Як створити підключення до бази даних у PHP? Створення екземпляра бази даних та підключення до неї

02.04.2020 Огляди

За допомогою 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 ("Помилка така то"); - Перекладається як або помри з такою-то помилкою - щоб відразу знайти де помилка.

config.php

// Змінні для з'єднання з БД
$host = "localhost"; /хост
$username = "root"; // пароль для підключення до БД
$password = ""; // пароль для підключення до бази даних - на локальному комп'ютерівін може мати пусте значення.
$database_name = "my-dolgi"; // ім'я БД

// Старий спосіб поєднання з БД
mysql_connect($host, $username, $password) or die("Не можу з'єднатися створити з'єднання");

// Вибрати БД. Якщо помилка – вивести
mysql_select_db($database_name) або die(mysql_error());

index.php

require_once "config.php";


$result = mysql_query("SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5") or die(mysql_error());



";


while ($row = mysql_fetch_assoc($result)) (
";
}


mysql_free_result($result);

// Закриваємо з'єднання
mysql_close();

2) Більш прогресивний процедурний стиль - з'єднання з БД за допомогою mysqli:

Цей спосіб:

  1. зручніше;
  2. швидше до 40 разів;
  3. підвищена безпека;
  4. є нові можливості та функції;

Приклад з'єднання з БД на PHP з вибіркою з таблиці

config.php

// поєднання з БД
$link = mysqli_connect("localhost", "username", "password", "name-database"); // Тут вводимо дані ваші: ім'я користувача, пароль і ім'я БД, перше поле зазвичай localhost

// Висновок помилки з'єднання
if (!$link) (
echo "Помилка підключення до БД. Код помилки: " . mysqli_connect_error();
exit;
}

Зверніть увагу - скрізь використовується mysqli, а не mysql!!!

index.php

require_once "config.php";

// Виконати запит. Якщо помилка – виводимо
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);

// Закриваємо з'єднання
mysqli_close($link);
}

Як бачимо, деякі моменти змінилися (виділені курсивом).

3) Об'єктно-орієнтований метод підключення до бд MySQL – за допомогою методів та класів:

Мінуси: складніше і менш сприйнятливий до помилок.

Плюси: стислість і зручність для програмістів з досвідом.

$conn = new mysqli($db_hostname, $db_username, $db_password, $db_database);
if($conn->connect_errno)(
die($conn->connect_error);
) else (echo "З'єднання з БД успішно встановлено";)

Тут у принципі все інтуїтивно відомо:

  • $db_hostname - це хост(в основному localhost),
  • $db_database - ім'я БД;
  • $db_username та $db_password - ім'я користувача та пароль відповідно!

Приклад з'єднання з БД на php стиль ООП з вибіркою з таблиці

config.php

// поєднання з БД
$ mysqli = new mysqli ("localhost", "username", "password", "name-database"); // Тут вводимо дані ваші: ім'я користувача, пароль і ім'я БД, перше поле зазвичай localhost

// Висновок помилки з'єднання
if ($ mysqli->connect_error) (
die ("Помилка підключення до БД: (" . $mysqli->connect_errno . ") " . mysqli_connect_error) ;
}

Зверніть увагу - скрізь використовується mysqli, а не mysql!!! і на відміну від попереднього методу, з'являються стрілочки "->", які показують, що це стиль ООП.

index.php

require_once "config.php";

// Виконати запит. Якщо помилка – виводимо
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();

// Закриваємо з'єднання
$mysqli->close();
}

Завдання вам таке – знайти відмінності.

4) Зв'язок із БД за допомогою PDO:

При з'єднанні з базою даних MySQLвикористовуються підготовлені вирази (методом prepare) і в результаті більша безпека та сильно збільшує швидкодію.

config файлвід попереднього методу! - такий же

index.php

// 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();

// Оголошення змінних для заготовлених значень
$stmt->bind_result($col1, $col2);

Echo "Кому я повинен за спаданням:

";

// Вибір результатів запиту
while ($stmt->fetch()) (
echo $col1 . "З боргом". $col2. рублів.
";
}

// звільнення пам'яті
$stmt->close();

// Закриваємо з'єднання
$mysqli->close();

Як бачимо, тут набагато складніше і треба вивчати PDO – це окрема тема.

Підключення до бази даних mysql створюють з допомогою функції mysql_connect(). У дужках зазначаються змінні, за допомогою яких встановлюється з'єднання.
Які саме?

1. $location - вказує сервер, на якому розташований скрипт. Найчастіше це localhost.
2. $user - у цій змінній прописуємо ім'я користувача бази даних
3. $password - пароль користувача бази даних
Після підключення до бази даних обов'язково повинні вибрати ім'я бази даних. Для цього використовують функцію mysql_select_db(). У дужках прописуємо два параметри:
1. $dbname - у цій змінній вказуємо назву вашої бази даних. Назва може бути будь-якою. Пишемо все, зрозуміло, англійською.
2. $connect – дескриптор з'єднання з базою даних. У разі невдалого з'єднання з базою даних змінна приймає аргумент false

Код з'єднання з базою наступний:

Немає з'єднання з базою даних

"); exit(); ) ?>

Цей код ви можете прописати прямо всередині будь-якого файлу, де відбувається робота з базою даних. Але здебільшого створюють окремий файл, де прописують цей код. Там же можна вказати всі змінні та константи для вказівки загальних налаштуваньвсього додатка.

Як створити підключення до бази даних phpmyadmin

Найчастіше будь-який веб-програміст починає таку операцію на локальному сервері. Тому що спочатку будь-який новий веб-додаток або сайт пишеться і редагується на звичайному домашньому комп'ютері. Після того, як програміст перевірить усі системи і не переконається, що все надійно та злагоджено працює. Тільки після цього все вивантажується на віддалений сервер.

Підключеннявідбувається, як і було описано вище, за допомогою функцій з'єднання та функції вибору бази даних. Тільки невелика відмінність. Якщо ви все робите на локальному комп'ютері ім'я користувача бази даних, зазвичай root. Пароля немає або прописуємо найпростіший один, два, три.

Навіщо ускладнювати всю систему для себе?

Phpmyadminце спеціальний веб-інтерфейс для управління всіма базами даних, розташованих на вашому локальному сервері. Оскільки керувати базою через консоль вкрай незручно.

Створимо підключення бази даних до сайту на php

Тепер переходимо до найвідповідальнішої роботи з перенесення нашого сайту або програми на віддалений сервер. Тепер слід мати на увазі, що для нормальної роботи вашого сайту вам знадобиться платний хостингз підтримкою PHP 5 і вище, MySql обов'язково з інтерфейсом Phpmyadmin і повністю весь інтерфейс файлового менеджера, для керування файлами вашого сайту.

При покупці хостингу вам обов'язково повинні видати інформаційний лист, де будуть вказані всі параметри вашого сервера. А для підключення бази даних довашому сайту, Ви самі створюєте свою базу даних, прописуєте ім'я та пароль.

На багатьох хостингах все відбувається по-різному. Або самі прописуєте логін, пароль чи пароль, логін встановлюється автоматично під час створення бази даних.
Код для підключення наступний:

Немає з'єднання з базою даних"); exit(); ) if (! @mysql_select_db($dbname,$connect)) ( echo("

Немає з'єднання з базою даних

"); exit(); ) ?>

Як ви помітили, нічого складного. Ви просто взяли той самий файл і просто змінили кілька змінних ось і все. Просто запам'ятайте одне правило при перенесенні сайту на віддалений сервер ви повинні змінити три змінні у файлі конфігурації, а саме:

1. $ dbname = "base"; // ім'я бази даних
2. $user = "vashlogin"; // Ім'я користувача бази даних
3. $password = "123456789"; // пароль користувача бази даних

3 методи підключення до MySQL з PHP з прикладами коду


Щоб почати користуватися базою даних MySQL, треба в першу чергу зрозуміти, як підключитися з вашої PHP-програми (скрипта) до цієї самої бази даних MySQL.

У цій статті описано такі три методи, а також відповідні приклади PHP-коду, в яких пояснюється, як підключитися до вашої бази даних з PHP.

Для всіх наведених нижче прикладів ми підключатимемося до вже існуючої бази даних MySQL. Примітка: все, що тут пояснюється, також буде працювати з MariaDB, так само як і з MySQL.

1. Підключення до PHP за допомогою розширення mysqli
*mysqli означає MySQL Improved

Створіть наступний файл mysqli.php

connect_error) ( die("Помилка: неможливо підключитися: " . $conn->connect_error); ) echo "Підключилися до бази.
"; $result = $conn->query("SELECT id FROM goroda"); echo "Кількість рядків: $result->num_rows"; $result->close(); $conn->close(); ?> наведений вище код:

  • mysqli – ця функція ініціює нове з'єднання з використанням розширення mysqli. Функція приймає чотири аргументи:
    1. localhost ім'я хоста, на якому запущено базу даних MySQL
    2. name - ім'я користувача MySQL для підключення
    3. pass - пароль для користувача mysql
    4. db – база даних MySQL для підключення.
  • qvery – функція запиту MySQL. У цьому прикладі ми вибираємо стовпець id з бази даних міст.
  • Нарешті, ми показуємо кількість рядків, вибраних за допомогою змінної num_rows в результаті. Ми також закриваємо як результат, так і змінну сполуки, як показано вище.
Коли ви викликаєте вищезгаданий mysqli.php зі свого браузера, ви побачите наступний висновок, який вказує на те, що PHP зміг підключитися до бази даних MySQL і отримати дані.

Підключились до бази. Кількість рядків: 6 2. Підключення з PHP MySQL PDO Extension
*PDO означає об'єкти даних PHP

Драйвер PDO_MYSQL реалізує інтерфейс PDO, який надається PHP, для підключення з вашого PHP-скрипту до бази даних MySQL.

Створіть наступний файл mysql-pdo.php:

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Підключилися до бази.
$sql = "SELECT id FROM goroda"; print "Список id:
"; foreach ($conn->query($sql) as $row) ( print $row["id"] . "
"; ) $conn = null; ) catch(PDOException $err) ( echo "Помилка: неможливо підключитися: " . $err->getMessage(); ) ?> У наведеному вище:

  • new PDO - створить новий об'єкт PDO, який прийме такі три аргументи:
    1. mysql connect string: він буде у форматі "mysql:host=localhost;dbname=db". У наведеному прикладі db працює на localhost, і ми підключаємося до бази даних db.
    2. Ім'я користувача MySQL для підключення
    3. Пароль для користувача mysql
  • змінна $sql - створити запит sqlВи хочете виконати. У цьому прикладі ми вибираємо стовпець id з таблиці міст.
  • query ($ sql). Тут ми виконуємо запит SQL, який ми щойно створили.
  • foreach. Тут ми перебираємо результат із зазначеної вище команди запиту та зберігаємо її у змінній $row, а потім виводимо її за допомогою echo.
  • У MySQL PDO, щоб закрити з'єднання, просто встановіть змінну $conn значення null.
Коли ви викликаєте вказаний вище скрипт mysqli.php зі свого браузера, ви побачите наступні рядки; вони означають, що PHP зміг підключитися до бази даних MySQL та отримати інформацію:

Підключились до бази. Список ID: 1 2 3 4 5 6 3. Підключення з PHP з використанням застарілих функцій mysql

Використовуйте цей метод, тільки якщо ви використовуєте більше стару версію PHP і з якоїсь причини не можете оновити її до нової версії. Рекомендується використовувати метод №2 і метод №3, наведені вище, замість цього методу. Я ввімкнув цей метод лише для довідки, а не як рекомендацію для використання.

Це конкретне розширення було застаріло від версії PHP 5.5. Але, починаючи з версії PHP 7.0, це навіть не працюватиме, оскільки воно було видалено. Починаючи з версії PHP 5.5, коли ви використовуєте ці функції, вона генеруватиме помилку E_DEPRECATED.

Створіть файл mysql.php:

$result = mysql_query("SELECT id FROM goroda"); $row = mysql_fetch_row($result); echo "id 1: ", $row, "
\n"; mysql_close($conn); ?> У наведеному вище:

  • Функція mysql_connect приймає три аргументи:
    1. ім'я хоста, в якому запущено базу даних MySQL;
    2. ім'я користувача MySQL для підключення;
    3. пароль для користувача mysql Тут він підключається до бази MySQL, яка виконується на локальному сервері з використанням імені користувача та його пароля.
  • Функція mysql_select_db. Як випливає з назви, вона вибирає базу даних, до якої потрібно підключитися. Еквівалентно команді "use". У цьому прикладі ми підключаємося до бази даних DB.
  • Функція mysql_query – використовується для вказівки вашого запиту MySQL. У цьому прикладі ми вибираємо стовпець id з бази даних міст.
  • mysql_fetch_row. Використовуйте цю функцію для вилучення рядків із SQL-запиту, який ми щойно створили.
  • Нарешті закрийте з'єднання, використовуючи команду mysql_close, як показано вище.
Коли ви викликаєте вищезгаданий mysql-legacy.php зі свого браузера, ви побачите наступний висновок, який вказує, що PHP зміг підключитися до бази даних MySQL та отримати інформацію:

Підключились до бази. id 1: 1 Ось так можна підключатися до MySQL. Повторюся, краще використовувати два перші способи; о

Питання досить популярне серед новачків і не приділити цьому окрему статтю було б неправильно. Як з допомогою PHPстворити підключення до бази даних? Скажу відразу, коштів PHP цілком достатньо для повноцінної роботи з базами та взаємодії з MySQL. Тепер спробуємо підключитись!

Що потрібно для підключення PHP до MySQL?

1. Встановлений СУБД та створена робоча база даних. Наприклад, у MySQL (Що таке СУБД та MySQL?).
2. Обліковий запискористувача для MySQL з відповідними правами (Що таке права та привілеї в MySQL?)
3. Відповідно сервер із встановленим PHP

Якщо не виконати один із цих пунктів, то підключитися не вийде.

Алгоритм взаємодії PHP та MySQL

1. Підключення до БД
2. Надсилання запиту та отримання результату
3. (Бажано) Закриття підключення

Тепер підключаємося до бази даних засобами PHP:

Код PHP

$db = mysql_connect("localhost", "Admin", "pass"); // данні користувача
mysql_select_db ("baseName", $ db); // вибираємо до якої БД підключаємося
?>
Як Ви бачите, для підключення вказуються чотири параметри:

1. Ім'я хоста. У багатьох випадках достатньо вказати місцезнаходження (на цьому ж хостингу).
2. Ім'я користувача, якого ви зареєстрували для використання MySQL.
3. Пароль користувача, якого ви зареєстрували для використання MySQL.
4. Назва Бази даних, до якої хочемо підключитися. Відповідно, у користувача, якого ми вказали, мають бути права для роботи в цій БД.

В результаті, якщо щось зазначено неправильно, то нічого кримінального не станеться, а швидше за все Ви побачите помилку. Але будемо оптимістами, припустимо, Ви ввели все правильно.

Ще один вид підключення:

Код PHP

$host = "localhost"; /*хост*/
$user="admin"; /*Ім'я користувача*/
$password="12345"; /*Пароль користувача*/
$ db = "baseName"; /*Назва бази даних*/

Mysql_connect($host, $user, $password); /*Підключення до сервера*/
mysql_select_db($db); /*Підключення до бази даних на сервері*/
?>
Тут я наочно створюю змінні з прикладом даних по користувачеві та хосту, а потім створюємо підключення.

Як перервати (закрити) підключення до БД у PHP?

Трапляються випадки, коли дані для підключення вказуються некоректно. У цьому випадку скрипт продовжує опрацювати файл PHP і видає певну кількість помилок і попереджень на сторінці. Для цих випадків пропоную використовувати обробник помилок під час підключення до БД. У разі невдалого підключення Вам буде виведено попередження, яке підкаже на якомусь етапі проблема:

Код PHP

$user="admin";
$password="12345";
$ db = "baseName";

// якщо сталася помилка
mysql_connect($host, $user, $password) or die("MySQL сервер недоступний!".mysql_error());
mysql_select_db($db) or die("Немає з'єднання з БД". mysql_error());
?>
Дуже важливо також те, що опрацювання сценарію припиниться, що убереже Вас від багатьох некоректних даних.

Вітаю! Тепер Ви знаєте, як підключитися до БД в PHP і закрити з'єднання!

Дякую за увагу!

У цій статті сьогодні поговоримо про створення підключення до бази даних та обговоримо який варіант краще використовувати процедурний чи об'єктно-орієнтований. Спочатку давайте розберемо на якому рівні ми знаходимося, якщо це рівень повного новачкатоді моя порада без винятку почати використовувати процедурний стиль підключення до бази даних. Раніше я писав статтю на цю тему на своєму блозі, детальніше про процедурний стиль підключення до бази даний читайте в статті: «Як підключитися до MySQL використовуючи PHP» . Якщо за плечима є вже якийсь досвід роботи з процедурним стилем підключення до бази даних, тоді Вас напевно, як і мене, мої проекти просто взяли і змусили використовувати об'єктно-орієнтований підхід.

Так чи інакше ми зараз розберемо етапи побудови класу для створення підключення до бази даних MySQL мовою PHP. Нам знадобиться два PHP файли, в один файл ми «покладемо» клас для створення підключення до бази даних, а в другому будемо працювати з цим класом.

Створимо два файли:

  • index.php;
  • database.class.php;

Думаю, ми не маленькі вже діти і знаємо, що нам потрібне для роботи з PHP файлами. Встановлений веб-сервер Apache, PHP, СУБД MySQL і знає куди ці файли покласти - (для тих, хто не знає чи забув).

Файл у якому зберігатиметься клас я виношу в окремий файл і маю його у форматі: ім'я класу.class.php і я знаю, що зберігатись у мене в цьому файлі. Коли в проекті багато класів, можна загубитися, тому рекомендую називати файли з класами у форматі, описаному вище.

Файл database.class.php:

Давайте зараз розберемо, що було створено на даному кроці. За допомогою ключового слова "class", імені класу - DataBase та фігурний дужокми створили тіло класу. У створеному класі ми створили дві властивості, в $mConnect - де зберігатиметься результат з'єднання з базою даних і $mSelectDB - де зберігатиметься результат вибору бази даних. Ви могли помітити ключові слова в кожній властивості - public та static. Про що вони говорять? Public означає, що властивість доступна поза класом, а static дає можливість звертатися або викликати властивість без створення екземпляра клас, що дуже часто зручно в роботі.

Додамо метод Connect() для створення з'єднання з базою:

".mysql_error()."

"; exit(); return false; ) // Повертаємо результат return self::$mConnect; ) ) ?>

  • $host - IP адреса сервера, на локальному ПК це localhost;
  • user – ім'я користувача бази даних;
  • $pass – пароль користувача бази даних;
  • $name - ім'я бази даних, до якої підключаємося;

Функція mysql_connect() створює з'єднання з базою даних, результат виконання зберігає $mConnect. Далі йде перевірка конструкцією IF: Якщо підключення не пройшло успішно, вивести повідомлення про помилку… Інакше PHP проігнорує блок IF та піде далі вибирати базу даних. Функція mysql_select_db() робить вибір імені бази даних, якщо в базі немає запитуваної бази даних, у разі програма повідомить користувачеві про помилку. Якщо все буде успішно, з'єднання з базою даних поверне return.

Додаємо метод Close():

На жаль, не вдалося підключитися до сервера MySQL

"; exit(); return false; ) // Пробуємо вибрати базу даних self::$mSelectDB = mysql_select_db($name, self::$mConnect); // Якщо база даних не вибрана, вивести повідомлення про помилку.. if( !self::$mSelectDB) ( echo "

".mysql_error()."

"; exit(); return false; ) // Повертаємо результат return self::$mConnect; ) // Метод закриває з'єднання з базою даних public static function Close() ( // Повертає результат return mysql_close(self::$mConnect) ; ) ) ?>

Наступний і останній у цьому класі метод Close() - закриває з'єднання з базою даних, функція mysql_close() закриває з'єднання з сервером MySQL і повертає результат.

Файл index.php:

асоціативний масив$row = mysql_fetch_assoc($result); // Виводить версію сервера MySQL echo $ row ["VERSION"]; // Закриваємо з'єднання з базою даних DataBase::Close(); ?>

За допомогою функції define() ми створили константи для зберігання параметрів з'єднання з базою даних. Require_once підключає наш клас DataBase у файл index.php.

Давайте згадаємо ключове слово static, яке використовувалося в класі DataBase у властивостях та методах даного класу. Це дає нам можливість звертатися до властивостей та методів класу через "::" (дві двокрапки). Метод DataBase::Connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE), приймає 4 параметри - створені функції define() константи, в яких зберігається інформація про з'єднання з базою даних. Якщо з'єднання буде успішно, метод Connect() поверне нам з'єднання з базою даних. Далі ми зможемо працювати та виконувати запити до бази даних. Функція mysql_query() – виконує запит до бази даних. Функція mysql_fetch_assoc() – обробляє ряд результату запиту та повертає асоціативний масив. Конструкція echo виводить версію сервера MySQL. І на завершення метод DataBase::Close() - закриє з'єднання з базою даних.