Работа с MySQLi (Rating: +6)
Работа с MySQLi
MySQLi - это улучшенный драйвер для работы с базами данных MySQL
Подробнее о драйвере вы можете прочитать в Википедии
Несколько примеров:
Инициализация базы данных
Установка кодировки
Запрос в базу данных
Количество записей(1 вариант)
На примере предыдущего запроса
Количество записей (2 вариант)
Последний id insert
Чтобы упростить работу с бд можно создать пользовательскую функцию, например:
Один совет! Откажитесь от "*" в запросе, доставайте только нужные данные, пример:
Спасибо за внимание
CoolCMS
Added: Dmitry Kokorin
07.02.2015 / 09:20MySQLi - это улучшенный драйвер для работы с базами данных MySQL
Подробнее о драйвере вы можете прочитать в Википедии
Несколько примеров:
Инициализация базы данных
<?php $mysqli = new mysqli('localhost','user','password','base'); if(!$mysqli) $mysqli->error;
Установка кодировки
<?php $mysqli->set_charset('utf8');
Запрос в базу данных
<?php //готовим запрос $result = $mysqli->prepare("SELECT `col1`, `col2` FROM `table` WHERE `id`=?"); //вставляем параметры. //'i' - integer, 'd' - double или float, 's' - string $result->bind_param('i', $_GET['id']); //выполняем запрос if($result->execute()){ //подготавливаем переменные в которые будут занесены результаты $result->bind_result($col1, $col2); //заполняем переменные $result->fetch(); //освобождаем память $result->close(); }else{ //если запрос Не выполнился //выдаем ошибку die('error - '.$mysqli->errno.' - '.$mysqli->error); }
Количество записей(1 вариант)
На примере предыдущего запроса
<?php if($result->execute()){ $count = $result->num_rows; $result->close(); }
Количество записей (2 вариант)
<?php $result = $mysqli->prepare("SELECT COUNT(*) as `count` FROM `table`"); if($result->execute()){ $result->bind_result($count); $result->fetch(); $result->close(); }
Последний id insert
<?php $result = $mysqli->prepare("INSERT INTO `table` (`col_1`,`col_2`) VALUES (?,?)"); $result->bind_param('is', $int_val, $string_val); if($result->execute()){ $last = $mysqli->insert_id; $result->close(); }
Чтобы упростить работу с бд можно создать пользовательскую функцию, например:
<?php function db(){ static $mysqli = null; if(!$mysqli){ $mysqli = new mysqli('localhost','user','password','base'); $mysqli->set_charset('utf8'); } return $mysqli; } function prepare($val){ return db()->prepare($val); } function otherUserFunc(){ $data = prepare("SELECT `password` FROM `users` WHERE `id`=?"); $data->bind_param('i', $_POST['id']); if($data->execute()){ $data->bind_result($password); $data->fetch(); $data->close(); } if($password !== $_POST['password']){ return false; }else{ return true; } }
Один совет! Откажитесь от "*" в запросе, доставайте только нужные данные, пример:
<?php "SELECT `id`,`text` FROM `news` WHERE `id`=?";
Спасибо за внимание
CoolCMS
Rating:
+6
Views: 2553Comments (11) »