
Всем доброго времени суток и приступим! Самое первое что нам необходимо сделать для работы с базой данных, это непосредственно подключиться к ней.
За подключение к базе отвечает следующий объект:
$mysqli = new mysqli($host,$user,$password,$db);
здесь мы создали объект $mysqli класса mysqli который отвечает за соединение с базой данных. В качестве аргументов данный класс принимает четыре обязательных параметра.
$host - имя хоста
$user - имя пользователя базы данных
$user - пароль базы данных
$db - название базы данных
Далее как правило мы первым же sql запросом должны установить кодировку.Для отправки $sql запросов нужно воспользоваться методом query нашего объекта $mysqli.
$sql = 'SET NAMES UTF8';
$mysqli->query($sql);
Мы в переменной $sql сформировали sql-запрос и с помощью метода query отправили его к базе данных.
Кстати для того чтобы проверить кодировку мы можем воспользоваться методом get_charset()
$mysqli->get_charset();
и нам выведется вся доступная информация о кодировке соединения.
Едем дальше. Для обработки результатов выполнения sql - запросов мы можем пользоваться следующими методами:
$res = $mysqli->query($sql);
$row = $res->fetch_assoc();
C помощью метода fetch_assoc() мы получаем результат в виде одной строки, который вернул sql - запрос, преобразованный в ассоциативный массив. Если же мы хотим получить все строки нашего запроса, тогда нам необходимо сделать перебор c помощью цикла while.
$array = array();
while($row = $res->fetch_row()){
$array[] = $row;
}
print_r($array);
в результате в массиве $array у нас будут содержаться все строки нашего запроса.
Однако мы можем поступить намного проще:
$res->fetch_all();
метод fetch_all() выводит все строки нашего запроса в виде ассоциативного массива.
Если же нам необходимо получить одну строку из базы данных мы можем воспользоваться методом fetch_row():
$res->fetch_row()
Данный метод вернет одну строку в виде ассоциативного массива.
Теперь рассмотрим два полезных свойства:
$field_count = $res->field_count;
$res->num_rows;
c помощью свойства field_count мы узнаем количество полей таблицы к которой адресован sql-запрос, а с помощью num_rows количество строк.
При составлении и отправке запросов могут возникать ошибки. Поэтому в класс mysqli предусмотрены свойства которые предоставляют информацию об ошибке:
$mysqli->errno;
свойство errno возвращает код возникшей ошибки.
$mysqli->error_list;
error_list возвращает информацию об ошибке в виде массива.
$mysqli->error;
error возвращает описание последней ошибки.
Еще одно полезное свойство:
$mysqli->insert_id;
insert_id c помощью него мы можем получить уникальный идентификатор новой добавленной строки. Отмечу что данное свойство доступно только после процесса добавления.
$mysqli->affected_rows;
Данное свойство возвращается количество затронутых строк(выбранных, измененных, добавленных и удаленных)
И напоследок, любые данные пришедшие от пользователя необходимо обрабатывать. Это справедливо и при формировании sql-запроса, к примеру мы хотим добавить нового пользователя:
$user = $mysqli->real_escape_string($user);
$password = $mysqli->real_escape_string($password);
$sql = 'INSERT INTO `user` SET `login`="'.$user.'", "'.$password.'"';
$mysqli->query($sql);
При формировании sql-запроса мы обработали наши переменные с помощью метода real_escape_string(). Данный метод экранирует специальные символы sql выражений.
Вот в принципе и все что я хотел вам рассказать. Сегодня мы рассмотрели основные, часто используемые методы и свойства класса mysqli который позволяет нам работать с базами данных.
Желаю вам удачи и успехов!