Может ли именованный параметр называться, как имя поля?

Вероломство

Одно время использовал именованные параметры (тупо нравилось двоеточие в плейсхолдере) :) сейчас уже не использую, но я тогда именовал вот так: `login` = :login

НО, ещё тогда не давала покоя выдержка из официальной документации

Замечание:

Псевдопеременные должны представлять только единичный объем данных. Не часть значения, ни служебное слово, ни имя поля, ни какую либо произвольную часть запроса.

Значит ли это, что я неправильно использовал именованные параметры?

 

miketomlin

Я сегодня что-то не то съел на завтрак. Значит ли это, что завтра луна свалится на землю?
— Добавлено —
Тебе написали, что нельзя делать :login = ‘admin’ и т.п. Только цельные значения полей или сравниваемые со значениями полей.

 

Вероломство

:) ну я читаю, как написано, написали бы как ты, вообще вопросов не было бы

 

MouseZver

А еще нельзя одновременно употреблять в запросе как именованные плейсхолдеры так и обычные.
SELECT … WHERE … column = ? …. column = :test … column = ?
В своей обвертке эту фичу разрешил.

 

Вероломство

строку запроса конвертишь во что-то одно?

 

MouseZver

Да. В mysqli расширении вовсе запрещено использованть именованные плейсхолдеры, только метки (?)

в SQL строке ищу и преобразую в метки, с запоминанием последовательностью местоположений для перестройки/дублирований значений.
https://regex101.com/r/IP03dv/1

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *