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执行时间记录查询 – 自动完成功能无效相关推荐
- MyBatis-plus自动填充功能之自动填充时间
MyBatis-plus自动填充功能之自动填充时间 一.前期工作 二.自动填充 2.1 数据库级别 2.2 代码级别 在实际操作过程中,我们并不希望创建时间.修改时间这些来手动进行,而是希望通过自动化 ...
- php pdo预处理查询,关于php:从PDO预处理语句中获取原始SQL查询字符串
在对准备好的语句调用pdoStatement::execute()时,是否有方法执行原始SQL字符串?出于调试目的,这将非常有用. 对于php>=5.1,请查看php.net/manual/en ...
- mysql pdo 安全_使用PDO查询Mysql来避免SQL注入风险
当 我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失 去控制.虽然可以用mysql_real_escap ...
- php pdo性能,深入分析PHP PDO配置及使用方法
PDO(PHP数据对象) 是一个轻量级的.具有兼容接口的PHP数据连接拓展,是一个PHP官方的PECL库,随PHP 5.1发布,需要PHP 5的面向对象支持,因而在更早的版本上无法使用,下面我们一起来 ...
- php pdo字符,PHP:(PDO)Mysql最有效的方式来添加字符串以返回db的值
在一个mysql数据库中,我存储了一些没有确切路径的图像名称. 所以我想要做的就是在将返回的数组加载到jQuery(json)中以在JQ Galleria插件中使用它之前添加路径. 在列中,我有这样的 ...
- php pdo 预处理删除,PHP PDO扩展整理,包括环境配置\基本增删改查\事务\预处理
介绍 PDO是一种PHP程序连接数据库的接口,通过PDO可以将PHP程序与数据库联系起来. 优点: 1.可移植性,可以支持各种主流数据库服务,而且实现代码几乎都是相同的,使用PDO在代码层面上不需要太 ...
- php中pdo连接数据库,PHP使用PDO连接数据库
在使用 PDO 与不同数据库之间交互时,PDO 对象中的成员方法是统一各种数据库的访问接口,所以在使用 PDO 与数据库交互之前,首先要创建一个 PDO 对象,然后再通过对象的构造函数来连接数据库.该 ...
- php pdo 方法,PHP之pdo操作数据库
PDO概述 1.PDO简介 PDO是PHP数据对象(PHP Data Object)的缩写. PDO扩展为PHP访问不同数据库定义了一个轻量级的.一致性的接口: PDO作用是统一各种数据库的访问接口, ...
- php pdo的用法,php pdo函数库用法详解
pdo->begintransaction() - 标明回滚起始点 pdo->commit() - 标明回滚结束点,并执行sql pdo->__construct() - 建立一个p ...
最新文章
- python中for语句用法_python中for循环的用法
- 伯乐:一个易用、强大的PyTorch推荐系统开源库
- clodeblocks debug断点调试_Intellij IDEA高阶DEBUG大杀器
- 九、【栈和队列】栈和递归
- 云计算的背后到底是什么?
- vue2使用$set()使对象新增属性后触发视图更新
- html5新增的js,HTML5新增属性data-*和js/jquery之间的交互及注意事项
- aswing学习笔记4-通过调用面板中的按钮实现主界面动态切换皮肤的问题!
- flex读取bolg的代码
- 【渝粤教育】国家开放大学2018年秋季 7048-21T危急重症护理学(本) 参考试题
- Java 编程需要注意的细节
- POJ1015 Jury Compromise【背包问题】
- MySQL2:代码小节和代码测试
- CxImage功能强大的图形处理程序
- 过7游戏c语言,C语言实现扫雷小游戏
- Google搜索又变聪明了 Baidu你还能HOLD住吗
- 知道ip获取计算机密码,知道iP地址怎么获取密码
- Unity手游制作记-制作通用镜头控制器
- find the longest of the shortest HDU - 1595
- 树莓派串口通信python,【树莓派Pico测评】- AD采集示例及串口通信