我正在尝试创建一个中间类,它将在数组中记录查询及其执行时间.一切都很好,它完美无缺.但是当我尝试访问中间类时,自动完成功能不起作用.如何让自动完成工作.我正在使用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执行时间记录查询 – 自动完成功能无效相关推荐

  1. MyBatis-plus自动填充功能之自动填充时间

    MyBatis-plus自动填充功能之自动填充时间 一.前期工作 二.自动填充 2.1 数据库级别 2.2 代码级别 在实际操作过程中,我们并不希望创建时间.修改时间这些来手动进行,而是希望通过自动化 ...

  2. php pdo预处理查询,关于php:从PDO预处理语句中获取原始SQL查询字符串

    在对准备好的语句调用pdoStatement::execute()时,是否有方法执行原始SQL字符串?出于调试目的,这将非常有用. 对于php>=5.1,请查看php.net/manual/en ...

  3. mysql pdo 安全_使用PDO查询Mysql来避免SQL注入风险

    当 我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失 去控制.虽然可以用mysql_real_escap ...

  4. php pdo性能,深入分析PHP PDO配置及使用方法

    PDO(PHP数据对象) 是一个轻量级的.具有兼容接口的PHP数据连接拓展,是一个PHP官方的PECL库,随PHP 5.1发布,需要PHP 5的面向对象支持,因而在更早的版本上无法使用,下面我们一起来 ...

  5. php pdo字符,PHP:(PDO)Mysql最有效的方式来添加字符串以返回db的值

    在一个mysql数据库中,我存储了一些没有确切路径的图像名称. 所以我想要做的就是在将返回的数组加载到jQuery(json)中以在JQ Galleria插件中使用它之前添加路径. 在列中,我有这样的 ...

  6. php pdo 预处理删除,PHP PDO扩展整理,包括环境配置\基本增删改查\事务\预处理

    介绍 PDO是一种PHP程序连接数据库的接口,通过PDO可以将PHP程序与数据库联系起来. 优点: 1.可移植性,可以支持各种主流数据库服务,而且实现代码几乎都是相同的,使用PDO在代码层面上不需要太 ...

  7. php中pdo连接数据库,PHP使用PDO连接数据库

    在使用 PDO 与不同数据库之间交互时,PDO 对象中的成员方法是统一各种数据库的访问接口,所以在使用 PDO 与数据库交互之前,首先要创建一个 PDO 对象,然后再通过对象的构造函数来连接数据库.该 ...

  8. php pdo 方法,PHP之pdo操作数据库

    PDO概述 1.PDO简介 PDO是PHP数据对象(PHP Data Object)的缩写. PDO扩展为PHP访问不同数据库定义了一个轻量级的.一致性的接口: PDO作用是统一各种数据库的访问接口, ...

  9. php pdo的用法,php pdo函数库用法详解

    pdo->begintransaction() - 标明回滚起始点 pdo->commit() - 标明回滚结束点,并执行sql pdo->__construct() - 建立一个p ...

最新文章

  1. python中for语句用法_python中for循环的用法
  2. 伯乐:一个易用、强大的PyTorch推荐系统开源库
  3. clodeblocks debug断点调试_Intellij IDEA高阶DEBUG大杀器
  4. 九、【栈和队列】栈和递归
  5. 云计算的背后到底是什么?
  6. vue2使用$set()使对象新增属性后触发视图更新
  7. html5新增的js,HTML5新增属性data-*和js/jquery之间的交互及注意事项
  8. aswing学习笔记4-通过调用面板中的按钮实现主界面动态切换皮肤的问题!
  9. flex读取bolg的代码
  10. 【渝粤教育】国家开放大学2018年秋季 7048-21T危急重症护理学(本) 参考试题
  11. Java 编程需要注意的细节
  12. POJ1015 Jury Compromise【背包问题】
  13. MySQL2:代码小节和代码测试
  14. CxImage功能强大的图形处理程序
  15. 过7游戏c语言,C语言实现扫雷小游戏
  16. Google搜索又变聪明了 Baidu你还能HOLD住吗
  17. 知道ip获取计算机密码,知道iP地址怎么获取密码
  18. Unity手游制作记-制作通用镜头控制器
  19. find the longest of the shortest HDU - 1595
  20. 树莓派串口通信python,【树莓派Pico测评】- AD采集示例及串口通信

热门文章

  1. LTV 即用户生命周期价值
  2. SSAN 关系抽取 论文笔记
  3. TensorRT简介
  4. bert速度提升fastbert
  5. python性能分析之line_profiler模块-耗时,效率 时间
  6. Android数据持久化:文件存储
  7. Spring Data JPA 五分钟快速入门和实践
  8. cuDNN 功能模块解析
  9. 提高智能家居设备的兼容性
  10. DCN-2655 gre隧道 vpn 嵌入IPSec配置: