2
好的,類似的問題已被問及之前回答。不過,我也想計算準備好的查詢。我想我可以使用prepare()函數來增加查詢計數,但是這給我提供了一些可疑的結果。現在,它告訴我正在執行10個查詢......通常我只使用預準備語句,除非數據是靜態的或無法修改。擴展PDO執行()來對頁面上的查詢計數
我從另一個與此相同的問題中找到了此代碼。除了代碼只計算使用query()和exec()函數執行的查詢。我試圖修改它,但正如我之前說過它是不計任何準備查詢,但查詢仍會執行並返回結果...
class PDOEx extends PDO
{
private $queryCount = 0;
public function query($query)
{
++$this->queryCount;
return parent::query($query);
}
public function exec($statement)
{
++$this->queryCount;
return parent::exec($statement);
}
public function execute($args = null)
{
++$this->queryCount;
if (!is_array($args)) {
$args = func_get_args();
}
return parent::execute($args);
}
public function GetCount()
{
return $this->queryCount;
}
}
我只想說,在此先感謝。請,如果你能指出我正確的方向,將非常感謝,謝謝!
我試圖延伸PDOStatement對象(其被提供了作爲一個建議),並且具有在那裏執行用於所製備的查詢。我無法得到它的工作。我如何使這個類中的queryCount參數與上面發佈的類相同? 'class db_statement extends PDOStatement { \t protected $ pdo; \t保護功能__construct($ pdo) \t { \t \t $ this-> pdo = $ pdo; \t} \t \t公共職能執行(的$ args = NULL) \t { \t \t //增加計數器。 ++ $ this-> queryCount; \t \t \t \t如果(is_array($參數)!){ \t \t \t的$ args = func_get_args(); \t \t} \t \t return parent :: execute($ args); \t} }' 或者這不起作用? – Tyler
你將不得不做很多課程重寫,我上面的答案完全不需要重寫課程。你無法使用上面提供的代碼嗎? – Augwa
是的,謝謝。我撤回了所有的班級覆蓋,並回到這個。這樣做似乎更清潔,更容易......再次感謝您! – Tyler