Как правильно написать запрос к БД PDO

131
19 апреля 2018, 10:28

Нужно написать стандартный запрос к БД используя PDO php ничего сложного. Вот запрос, который я использую:

$db = Db::getConnection();
$result = $db->query("SELECT login, id FROM shops WHERE login LIKE '%$text%'");
return $result->fetchAll();

Запрос возвращает массив данных, которые возвращают одну и ту же запись 2 раза т.е так:

Array ( [login] => логин [0] => логин [id] => 10 [1] => 10 ) 

Ну соответственно задается вопрос если работать с большим объемом данных не скажется ли это на скорости выполнения запроса? И как написать правильный запрос к БД чтобы он возвращал массив без раздвоения данных?

Answer 1

Правильно будет использовать биндинг параметров при выполнении запроса и извлечение только именованных (или наоборот) столбцов результирующего набора.

$sql = 'SELECT login, id FROM shops WHERE login LIKE :txt';
$sth = $dbh->prepare($sql);
$sth->execute( [':txt' => "%{$text}%"] );
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
READ ALSO
Как подставить в два условия where mysql две переменные php?

Как подставить в два условия where mysql две переменные php?

Всем добрый день, как правильно подставить две переменные в условие запроса mysql ? Видимо проблема с ковычкамиКонфиг сервера :

163
Ошибка работы с БД | php

Ошибка работы с БД | php

Uncaught Error: Call to undefined function mysql_query()

149
подсчет количества товара

подсчет количества товара

На форме выбирается количество ящиков и автоматически меняется сумма у Ящиков и итоговая суммаСчитается отдельно количество товара и меняется...

183