У меня есть устаревшее приложение, которое использует функции mysqli_*()
(на самом деле оно использует функции mysql_*()
.Gah!). Я использую aura/sqlquery в качестве генератора запросов SQL. Например:Переменная привязка в ауре/sqlquery при использовании соединения mysqli_ *
$queryFactory = new Aura\SqlQuery\QueryFactory('mysql');
$select = $queryFactory->newSelect();
$select->from('sometable AS t')
->where('t.field1 = 0')
->where("t.field2 <> ''");
Тогда мы получим необработанный SQL литья в строку:
$sql = (string) $select;
Теперь я хочу сделать сделать какое-либо переменное связывание в where()
:
$select->where('t.somefield = ?', $somevalue);
Когда я литье в строку, escape-привязка никогда не возникает. Похоже, что привязка имеет место только при использовании PDO и подготовленных операторов.
Любые идеи о том, как получить переменную привязку в aura/sqlquery
при использовании соединения mysqli
?
Я полагаю, что требуется построитель запросов, и вы не хотите, чтобы решение работало с необработанным SQL? –
@YourCommonSense Я предпочитаю использовать построитель запросов для обработки сложных объединений. Например, если модель пользователя имеет несколько методов, которым требуется несколько соединений, то легко выполнить эти общие объединения в одном вспомогательном методе, а затем передать объект '$ select'. Управление сырым SQL-текстом кажется мне громоздким. –
Да, я вижу. Но все равно. Ваше требование не ясно для меня. Вам нужно получить только исходный SQL-код, который будет использоваться с функциями mysql_, и это единственный вариант? –