public function prepareQuery(Query $query, $recordClass = null) { $this->recordClass = $recordClass; $sql = $query->buildSQL(); $prepare = measure('Prepare query: ' . $sql, function () use($query, $sql) { $binds = $query->buildBinds(); $prepare = $this->getConnection()->prepare($sql); if (!$prepare) { throw new Exception('Cannot prepare statement'); } /** * Trigger query.prepared event. */ trigger(Query::class . '.prepared', ['sql' => $sql, 'binds' => $binds]); $i = 1; foreach ($binds as $key => $val) { if (is_array($val)) { foreach ($val as $rVal) { $prepare->bindValue($i, $rVal); $i++; } } else { $prepare->bindValue($i, $val); $i++; } } $prepare->setFetchMode(\PDO::FETCH_ASSOC); return $prepare; }); return $prepare; }
public function __construct($sql = null, $bind = []) { parent::__construct(); $this->sql = $sql; $this->bind = $bind; }