LINUX.ORG.RU

PDO::fetchAll возвращает не отсортированные строки

 ,


0

1

Делаю prepare запрос:

'SELECT * FROM tablename WHERE ... ORDER BY columnName'
Когда в mysql утилите набираю данный запрос, он в упорядоченном виде. Но в fetchAll Приходят строки не в отсортированном виде. Можно ли сделать, чтобы они приходили как в запросе sql?

Ответ на: комментарий от goingUp

В коде вроде все ок Вот кусок из запроса к бд

		$db = Db::getConnection();
		$sql = 'SELECT * FROM notes WHERE loginId = :loginId ORDER BY :type';
		$stmt = $db->prepare($sql);
		$stmt->execute([':loginId' => $loginId,':type' => $type]);
		
		return $stmt->fetchAll(PDO::FETCH_ASSOC);
В print_r когда смотрю результат, там неупорядоченные строки.

spock74
() автор топика
Ответ на: комментарий от spock74

Ты не вродькай, а как минимум дёрни debugDumpParams(). Программирование — не магия; если непонятно, почему что-то не работает — берёшь и ковыряешь, как оно работает и где расхождением с твоим представлением об этом.

Moondancer
()

В общем проблема была в том, что в запросе параметр :type был обрамлен в одинарные кавычки. Сделал конкатенацию строк, вместо подготовленного запроса.

spock74
() автор топика
Ответ на: комментарий от spock74

:type не надо байндить, он просто добавляет этот параметр как строку, поэтому и не сортирует

anonymous
()
Ответ на: комментарий от Deleted

Это уже другой вопрос. Пост о другом был.

spock74
() автор топика
Ответ на: комментарий от spock74

Сделал конкатенацию строк, вместо подготовленного запроса.

Вы точно не добавили уязвимость SQL Injection в ваш код ? У вас $type с клиента приходит?

Qasta
()
Ответ на: комментарий от Qasta

type отпарвляется ajax для сортировки. type - целое число. Перед отправкой привожу только к (int). Безопасно ли ?

spock74
() автор топика
Ответ на: комментарий от spock74

type отпарвляется ajax для сортировки. type - целое число. Перед отправкой привожу только к (int). Безопасно ли ?

Да, это правильно вы сделали, т.к. через int строку вроде "; select * from users" передать не получится. Никогда не забывайте про такие моменты, если вдруг где-то приходится собирать строки запросов вручную.

Через ajax запрос или напрямую в данном случае абсолютно не важно.

Qasta
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.