日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

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

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

我正在嘗試創(chuàng)建一個(gè)中間類,它將在數(shù)組中記錄查詢及其執(zhí)行時(shí)間.一切都很好,它完美無缺.但是當(dāng)我嘗試訪問中間類時(shí),自動(dòng)完成功能不起作用.如何讓自動(dòng)完成工作.我正在使用Netbeans.

中級(jí)類名是Model.

從我的應(yīng)用程序中,我有一個(gè)名為Users的類,它擴(kuò)展了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

);

}

}

他們有更好的方法嗎?

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。