{% else-1 %}
Многие уже наверное знают, что mysql_ считается устаревшей фнкцией. И что нужно переходить на что-то более новое.
Есть 2 варианта ПДО и МуСКУЛай.
По сути своей (Если брать ООП интерфейс MySQLi) они не сильно отличаются. Однако, ПДО универсальнее, а МуСКУЛи быстрее. Но как бы там ни было, я более предрасположен к MySQLi ООП. Именно о нем и пойдет речь в этом "куске" *

                        
1. Подключение к базе
$vht = new mysqli('localhost', 'romanvht_user', 'romanvht_password', 'romanvht_db');
if($vht->connect_errno){
die('Ошибка подключения '.$mysqli->connect_error);
}

2. Обычные запросы
Тут тоже все предельно просто

$vht->query("SELECT `gg` FROM `table`"); // Запрос, аналог mysql_query

$sql = $vht->query("SELECT `gg` FROM `table`")->num_rows; // К-во строк, аналог mysql_num_rows

$sql = $vht->query("SELECT `gg` FROM `table`")->field_count; // Выводит уже не строки а стобцы (к-во)

$sql = $vht->query("SELECT `gg` FROM `table`")->fetch_assoc(); // Преобразует данные в именной массив

//Вывод
echo $sql['name'];

//Пример в цикле
$sql = $vht->query("SELECT `gg` FROM `table`");
while($a = $sql->fetch_assoc()){
echo $sql['name'];
}

$sql = $vht->query("SELECT `gg` FROM `table`")->fetch_row(); // Преобразует данные в числовой (нумерованный) массив, используется аналогично конструкции выше

$sql = $vht->insert_id; // Последний сгенерированный ID

3. Защита
$txt = 'Тут что-то есть к примеру';
$text = $vht->real_escape_string($t); // Аналог mysql_real_escape_string

//Защищенный запрос (Подготовленное выражение)
$sql = $vht->prepare("INSERT INTO `gg` VALUES (?, ?)"); //#1
$sql->bind_param('si', $name, $date); //#2
$name = 'Имя';
$date = 18;
$sql->execute(); //#3
Тем кто не знаком с таким видом выполнения запроса, может показаться что тут что-то очень непонятное, но на самом деле и тут все предельно просто!
#1 Старт запроса
#2 Задаем "вопросикам" значения через переменные (можно и просто ('si', 'имя', 'возраст'))
#3 Выполнение запроса
Некоторых может смутить зачем si и что это?
Дело в том, что функция сама экранирует все "ненужные" символы в строке, нам нужно лишь указать тип строк.
i - числовые значения (INT), d - DOUBLE и FLOAT значения, b - BLOB значения, s - все остальное.
Гораздо безопаснее использовать как раз подготовленные выражения для выполнения запросов.

Вот собственно, мы рассмотрели все самое нужное про MySQLi.
Всем спасибо, удачи!
5 63 0
0

Нет фото
Chainsaw * [мошенник] 0
• 18 апр 2015, 18:09


Кидорас, Убедился уже*

0

Нет фото
• 18 апр 2015, 18:07


Predator 668, Видишь ли, while при каждой итерации "таскает" за собой запрос. А foreach перебирает уже ранее сохраненный в памяти массив.

0

Нет фото
Chainsaw * [мошенник] 0
• 18 апр 2015, 17:43


Кидорас, Честно говоря результаты меня немного шокировали, до этого я считал функцию while довольно быстрой и использовал ее для вывода данных пришедших из базы. Теперь я точно пересмотрю свою точку зрения.*

0

Фотография
• 2 фев 2015, 14:39


#FWLone, $vht->query("SELECT `id`,`img`,`name` FROM `lol` WHERE `name` LIKE '%$query%' OE `meta` LIKE '%$query%' ORDER BY `id` DESC LIMIT $start, $in_page"*;

0

Нет фото
#FWLone * 9.56
• 26 янв 2015, 13:34


а как рeализовать такой запрос
mysql_query("SELECT `id`,`img`,`name` FROM `lol` WHERE `name` LIKE '%$query%' OE `meta` LIKE '%$query%' ORDER BY `id` DESC LIMIT $start, $in_page"* ;
*