Как выбрать что-то с двоеточием с Zend_Db_Select? - PullRequest
0 голосов
/ 06 июня 2011

У меня есть запрос, где мне нужно выделить текст с двоеточием внутри, в основном это выглядит так:

$select = $this->db->select()
    ->from('table')
    ->where(sprintf('tag = "%s"','foursquare:venue=12345'));

Теперь, когда я запускаю это, я получаю исключение «Недопустимое имя переменной связывания: место действия», которое, очевидно, связано с тем, что адаптер Mysqli не позволяет связывать переменные. Дело в том, что теперь я даже не хочу использовать это как переменную связывания, я хочу запустить этот запрос в точности так. Как я могу предотвратить попытки Zend_Db_Select сделать это? Существует открытая проблема для платформы ( # 1398 ), которая действительно старая и нефиксированная, поэтому я думаю, что большинство людей находят обходной путь. Возможно, очень простой, и я просто слишком глуп, чтобы это увидеть.

Есть подсказки?

1 Ответ

1 голос
/ 06 июня 2011

Почему вы используете sprintf? Вы переопределяете встроенный механизм цитирования, который обычно обрабатывает эту ситуацию для вас:

$select = $this->db->select()
    ->from('table')
    ->where('tag = ?', $tag);
...