[пехлеви] [дб] fetchAll с несколькими переменными

Я пытаюсь использовать fetchAll на запросе, который имеет 2 переменные. Я не могу выяснить синтаксис. Я могу справиться только с 1 переменной:

$sql = "SELECT * FROM mytable WHERE field1 = ?";
$this->_db->fetchAll($sql,$value1);  # that works

Однако у меня есть некоторые проблемы, когда запрос имеет несколько переменных

$sql = "SELECT * FROM mytable WHERE field1 = ? AND field2 = ?";
$this->_db->fetchAll($sql,$value1,$value2); # doesn't work
$this->_db->fetchAll($sql,array("field1"=>$value1,"field2"=>$value2)); # doesn't work either

Причина, почему я хочу использовать? вместо того, чтобы поместить переменные непосредственно в запрос то, что я изучил то использование? позволяет, чтобы запрос был скомпилирован в общем механизмом дб, и улучшает производительность.

5
задан Bill Karwin 22 July 2010 в 01:46
поделиться

1 ответ

Попробуйте так:

$sql = "SELECT * FROM mytable WHERE field1 = ? AND field2 = ?";
$statement = $this->_db->query($sql,array("field1"=>$value1,"field2"=>$value2));
$data = $statement->fetchAll();

$this->_db должен быть экземпляром адаптера Db.

2
ответ дан 18 December 2019 в 08:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: