Вероломство
Одно время использовал именованные параметры (тупо нравилось двоеточие в плейсхолдере) сейчас уже не использую, но я тогда именовал вот так: `login` = :login
НО, ещё тогда не давала покоя выдержка из официальной документации
Замечание:
Псевдопеременные должны представлять только единичный объем данных. Не часть значения, ни служебное слово, ни имя поля, ни какую либо произвольную часть запроса.
Значит ли это, что я неправильно использовал именованные параметры?
miketomlin
Я сегодня что-то не то съел на завтрак. Значит ли это, что завтра луна свалится на землю?
— Добавлено —
Тебе написали, что нельзя делать :login = ‘admin’ и т.п. Только цельные значения полей или сравниваемые со значениями полей.
Вероломство
ну я читаю, как написано, написали бы как ты, вообще вопросов не было бы
MouseZver
А еще нельзя одновременно употреблять в запросе как именованные плейсхолдеры так и обычные.
SELECT … WHERE … column = ? …. column = :test … column = ?
В своей обвертке эту фичу разрешил.
Вероломство
строку запроса конвертишь во что-то одно?
MouseZver
Да. В mysqli расширении вовсе запрещено использованть именованные плейсхолдеры, только метки (?)
в SQL строке ищу и преобразую в метки, с запоминанием последовательностью местоположений для перестройки/дублирований значений.
https://regex101.com/r/IP03dv/1