Давайте теперь научимся работать с базами данных через PHP. Для этого прежде всего необходимо установить соединение с сервером базы данных.
Делается это с помощью функции mysql_connect
,
которая принимает 3
параметра: имя
хоста (сервера), имя пользователя, под которым
мы работаем с базой и пароль для этого пользователя.
Если вы работаете на своем компьютере, то
это будут localhost
, root
и
пароль в виде пустой строки (на некоторых
серверах он тоже может быть root
).
Если ваша база данных в интернете - то эти
данные выдает вам хостинг.
Итак, давайте установим соединение с базой данных:
<?php
$host = 'localhost'; // имя хоста
$user = 'root'; // имя пользователя
$pass = ''; // пароль
$name = 'mydb'; // имя базы данных
$link = mysqli_connect($host, $user, $pass, $name);
?>
Если указанные нами доступы правильные, то
установится соединение к базе данных. При
этом в переменную $link
запишется
специальный объект соединения, который мы
будем использовать в дальнейшем для всех
обращений к нашей базе данных.
Посылаем запросы к базе данных
После соединения с базой к ней можно отправлять
запросы. Это делается с помощью функции mysqli_query
.
Первым параметром эта функция принимает принимает
переменную, в которую мы записали результат
mysqli_connect
, а вторым - строку
с SQL запросом.
К примеру, выполним запрос, который достанет
все записи из таблицы users
:
<?php
$result = mysqli_query($link, 'SELECT * FROM users');
?>
Текст запроса не обязательно писать прямо
в параметре функции mysqli_query
.
Давайте вынесем его в переменную:
<?php
$query = 'SELECT * FROM users';
$result = mysqli_query($link, $query);
?>
Отлавливаем ошибки базы данных
Как вы уже знаете, в PHP вывод ошибок на
экран включается с помощью функции error_reporting
.
Эта функция, однако, не включает вывод ошибок,
допущенных в тексте SQL запроса.
Чтобы вывести ошибки SQL команд, следует
пользоваться функцией mysqli_error
,
которую необходимо добавлять к каждому запросу
к БД, вот так:
<?php
$query = 'SELECT * FROM users';
$result = mysqli_query($link, $query) or die(mysqli_error($link));
?>
Пока не будем разбираться с тем, как работает эта конструкция. Просто добавляйте ее и, в случае ошибочного SQL запроса вы увидите сообщение об этом в окне браузера.
Тестируем работоспособность
Давайте теперь напишем тестовый код, который вы сможете запустить у себя, чтобы убедится в том, что у вас все подключилось верно.
Для начала убедитесь, что у вас есть база
данных mydb
, а в ней таблица users
,
заполненная какими-нибудь данными.
Затем запустите у себя следующий код:
<?php
$host = 'localhost'; // имя хоста
$user = 'root'; // имя пользователя
$pass = ''; // пароль
$name = 'mydb'; // имя базы данных
$link = mysqli_connect($host, $user, $pass, $name);
$query = 'SELECT * FROM users';
$result = mysqli_query($link, $query) or die(mysqli_error($link));
var_dump($result);
?>
Если на экране нет ошибок и вы видите результат
var_dump
- значит все хорошо. Если
же есть какие-то ошибки - исправьте их и
попробуйте снова.
Скопируйте и запустите у себя приведенный тестовый код.