15.5. Тестирование подключения к базе данных из PHP
Для тестирования подключения к базе данных из PHP создадим базу данных с именем example_database и пользователя с именем example_user:
# mysql
Создать новую БД:
MariaDB [(none)]> CREATE DATABASE example_db;
Query OK, 1 row affected (0,000 sec)
Создать нового пользователя и предоставить ему полные права доступа к базе данных example_database:
MariaDB [(none)]> CREATE USER 'example_user'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0,002 sec)
Предоставить пользователю example_user все права на базу example_db:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'%';
Query OK, 0 rows affected (0,002 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0,000 sec)
Выйти из оболочки MySQL:
MariaDB [(none)]> exit;
Проверить, есть ли у нового пользователя надлежащие разрешения, снова войдя в консоль MySQL, с использованием пользовательских учетных данных пользователя:
$ mysql -u example_user -p
Enter password:
MariaDB [(none)]>
После входа в консоль MySQL убедитесь, что у пользователя example_user есть доступ к базе данных example_database:
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| example_db |
| information_schema |
+--------------------+
2 rows in set (0,000 sec)
Создать таблицу и заполнить её тестовыми данными:
MariaDB [(none)]> USE example_db;
MariaDB [(none)]> CREATE TABLE test (item_id INT AUTO_INCREMENT, content VARCHAR(255), PRIMARY KEY(item_id));
MariaDB [(none)]> INSERT INTO test (content) VALUES ("Test1");
MariaDB [(none)]> INSERT INTO test (content) VALUES ("Test2");
MariaDB [(none)]> EXIT
Создать скрипт PHP (
/var/www/test.alt/list.php
), который будет подключаться к MySQL и запрашивать контент, со следующим содержимым:
<?php
$user = "example_user";
$password = "password";
$database = "example_db";
$table = "test";
$conn = mysqli_connect("localhost", $user, $password, $database);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "<h2>Вывод из БД</h2><ol>";
foreach($conn->query("SELECT content FROM $table") as $row) {
echo "<li>" . $row['content'] . "</li>";
}
echo "</ol>";
mysqli_close($conn);
?>
Открыть этот файл по URL http://test.alt/list.php
: