php - Trying to understand function query in zend -
/** * prepares , executes sql statement bound data. * * @param mixed $sql sql statement placeholders. * may string or zend_db_select. * @param mixed $bind array of data bind placeholders. * @return zend_db_statement_interface */ public function query($sql, $bind = array()) { // connect database if needed $this->_connect(); // $sql zend_db_select object? if ($sql instanceof zend_db_select) { if (empty($bind)) { $bind = $sql->getbind(); } $sql = $sql->assemble(); } // make sure $bind array; // don't use (array) typecasting because // because $bind may zend_db_expr object if (!is_array($bind)) { $bind = array($bind); } // prepare , execute statement profiling $stmt = $this->prepare($sql); $stmt->execute($bind); // return results embedded in prepared statement object $stmt->setfetchmode($this->_fetchmode); return $stmt; } above code zend/db/adapter/abstract.php, although there comment, still not understand usage of $bind. if possible, please explain example.
thanks.
$bind array argument parametrized queries:
// $bind single param: $obj->query('select * tablename idcolumn = ?', array(1)); // or $obj->query('select * tablename idcolumn = ?', 1); means:
select * tablename idcolumn = 1 // $bind multiparams: $obj->query('select * tablename somefield between ? , ?', array(10, 15)); means:
select * tablename somefield between 10 , 15 // $bind omitted @ all: $obj->query('select * tablename order somefield'); means:
select * tablename order somefield if $sql instance of zend_db_select, may have own bindings. if supplied $bind empty / omitted, $sql's binding assigned it.
Comments
Post a Comment