我爲PHP創建了一個單例數據庫類。我認爲它工作得很好,但事實上並非如此。我現在正在做一個有3個查詢的頁面。 1檢查是否存在相冊,1檢查用戶是否擁有相冊,另一個是從相冊中獲取照片。Singleton數據庫類:刪除舊查詢結果
現在在我的第三個查詢中填充一個對象,但是前兩個查詢的結果也在該數組中,所以即時通知!
這裏有一個例子:
Array
(
[0] => Array
(
[id] => 2
[name] => My new album 1
[slug] => my-new-album-1
[user_id] => 1
[views] => 0
[datecreated] => 2013/03/23 16:00:43
)
[1] => Array
(
[id] => 3
[name] => My new album 1
[slug] => my-new-album-1
[user_id] => 1
[views] => 0
[datecreated] => 2013/03/23 23:51:58
)
[2] => Array
(
[id] => 2
)
[3] => Array
(
[id] => 117
[title] =>
[location_id] =>
[date] => 2013-03-30 00:42:26
[user_id] => 1
[album_id] => 2
)
這也是我如何做一個查詢並返回數組:
mysqli_conn::getInstance()->query($sql)->all_assoc()
而且這是做查詢並返回我的數據庫類的一部分結果:
public function query($sql){
$starttime = $this->time_to_float();
$this->query = mysqli_query($this->connection, $sql);
$endtime = $this->time_to_float();
$exectime = ($endtime - $starttime);
if (!$this->query){
throw new Exception(mysqli_error($this->connection));
} else {
$this->arQueryLog[] = array ('query' => $sql,
'exectime' => $exectime,
'affected_rows' => mysqli_affected_rows($this->connection),
'last_insert_id' => $this->lastID());
}
return $this;
}
public function all_assoc()
{
while($result = mysqli_fetch_assoc($this->query)){
$this->result[] = $result;
}
return $this->result;
}
怎麼可能只有最後一個查詢結果在結果數組中?
謝謝!
這是一些非常糟糕的設計你到了那裏。你爲什麼不使用'mysqli'的OOP版本? – Shoe