Подготовительные манипуляции для работы с SQL в PHP

Давайте теперь научимся работать с базами данных через 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 - значит все хорошо. Если же есть какие-то ошибки - исправьте их и попробуйте снова.

Скопируйте и запустите у себя приведенный тестовый код.