Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 /**
  * @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;
 }
Ejemplo n.º 3
0
 /**
  * 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;
 }
Ejemplo n.º 4
0
 /**
  * @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;
 }
Ejemplo n.º 5
0
 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;
 }
Ejemplo n.º 6
0
 /**
  * トランザクションロールバック
  * トランザクションをロールバックし、オートコミットに設定する。
  * @access public
  */
 function rollback()
 {
     $this->db->query("ROLLBACK");
     $this->db->autoCommit(true);
 }