Я пытаюсь использовать 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
Причина, почему я хочу использовать? вместо того, чтобы поместить переменные непосредственно в запрос то, что я изучил то использование? позволяет, чтобы запрос был скомпилирован в общем механизмом дб, и улучшает производительность.
Попробуйте так:
$sql = "SELECT * FROM mytable WHERE field1 = ? AND field2 = ?";
$statement = $this->_db->query($sql,array("field1"=>$value1,"field2"=>$value2));
$data = $statement->fetchAll();
$this->_db должен быть экземпляром адаптера Db.