日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

php pdo 时间,php – 使用PDO执行时间记录查询 – 自动完成功能无效

發布時間:2023/11/27 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php pdo 时间,php – 使用PDO执行时间记录查询 – 自动完成功能无效 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我正在嘗試創建一個中間類,它將在數組中記錄查詢及其執行時間.一切都很好,它完美無缺.但是當我嘗試訪問中間類時,自動完成功能不起作用.如何讓自動完成工作.我正在使用Netbeans.

中級類名是Model.

從我的應用程序中,我有一個名為Users的類,它擴展了Model.

class Users extends Model

{

function __construct() {

parent::__construct();

$stmt = $this->prepare('SELECT * FROM users WHERE id=? ');

$stmt->bindValue(1, 1); //$stmt-> auto-complete is unavailable

$stmt->execute();

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

print_r($rows); //i get results

}

}

我的Model類看起來像這樣.

class Model extends PDO

{

public static $log = array();

private $query_cache = array();

public function __construct() {

parent::__construct(

"mysql:dbname=".MYSQL_DB.";host=".MYSQL_HOST,

MYSQL_USER, MYSQL_PASSWORD

);

}

public function query($query) {

$time = "";

$query = mysql_real_escape_string(preg_replace( '/\s+/', ' ', $query ));

if (key_exists($query,$this->query_cache)

&& is_object($this->query_cache[$query]))

{

$result = $this->query_cache[$query];

} else {

$start = microtime(true);

$result = parent::query($query);

$time = microtime(true) - $start;

$this->query_cache[$query] = $result;

Logger::$logText['DATABASE'][] = array(

'QUERY' => $query,

'TIME' => number_format($time,4)

);

}

return $result;

}

/**

* @return LoggedPDOStatement

*/

public function prepare($query) {

return new LoggedPDOStatement(parent::prepare($query));

}

}

我的LoggedPDOStatement看起來像這樣.

class LoggedPDOStatement

{

/**

* The PDOStatement we decorate

*/

private $statement;

public function __construct(PDOStatement $statement) {

$this->statement = $statement;

}

/**

* When execute is called record the time it takes and

* then log the query

* @return PDO result set

*/

public function execute() {

$start = microtime(true);

$result = $this->statement->execute();

$time = microtime(true) - $start;

Model::$log[] = array(

'query' => '[PS] ' . $this->statement->queryString,

'time' => round($time * 1000, 3)

);

return $result;

}

/**

* Other than execute pass all other calls to the PDOStatement object

* @param string $function_name

* @param array $parameters arguments

*/

public function __call($function_name, $parameters) {

return call_user_func_array(

array($this->statement, $function_name), $parameters

);

}

}

他們有更好的方法嗎?

總結

以上是生活随笔為你收集整理的php pdo 时间,php – 使用PDO执行时间记录查询 – 自动完成功能无效的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。