private function getNumberAds($cat_id) { $result = 0; $q = 'SELECT COUNT(*) FROM ' . $this->mTbCompanies . ' WHERE id_cat = \'' . $cat_id . '\''; $result += $this->mDb->getOne($q); $q = 'SELECT id FROM ' . $this->mTbCats . ' WHERE parent = "' . $cat_id . '" AND active = 1'; $db =& $this->mDb->query($q); $res = array(); while ($row = $db->fetchRow()) { $result += $this->getNumberAds($row['id']); } return $result; }
/** * @see DB_common::query */ public function query($query, $params = array()) { $query = $this->quoteSql($query, $params); $res = $this->db->query($query, $params); $this->assertError($res); return $res; }
/** * SQL文を実行する * ※ループ処理などでは使用しない。 * ※SQLの解析が繰り返し行なわれるため処理が遅い。 * (SQLを何度も繰り返し実行しない場合に使用する) * <処理内容> * ・SQLの解析(prepare)を行なってからSQL文を実行する * ・SQL文の実行エラーが発生したら、トランザクションをロールバックする * @access public * @param string $sql SQL文 * @param array $params SQL文にセットするパラメータ * @return object SQL文の実行結果 * (Selectが成功した場合、DB_Resultオブジェクトをセットする) * (INSERT/UPDATE/DELETEが成功した場合、DB_OKをセットする) * @throws DatabaseException SQL文の実行エラーが発生した時 */ function execQuerySql($sql, $params = array()) { $rs =& $this->db->query($sql, $params); if (DB::isError($rs)) { $this->db->rollback(); throw new DatabaseException($rs->getMessage()); } return $rs; }
/** * @see DB_common::query */ public function query($query, $params = array()) { $query = $this->quoteSql($query, $params); $res = $this->db->query($query, $params); $this->assertError($res); if ($res instanceof DB_result) { return $res; } return $res == DB_OK; }
private function doCreateTable($tableName, $sql) { if ($this->dryRun) { $this->comment($sql); return true; } $result = $this->db->query($sql); if (PEAR::isError($result)) { $this->error($result->getMessage()); return false; } $this->info("Table '{$tableName}' created"); return true; }
/** * トランザクションロールバック * トランザクションをロールバックし、オートコミットに設定する。 * @access public */ function rollback() { $this->db->query("ROLLBACK"); $this->db->autoCommit(true); }