作者padding (100px;)
看板PHP
标题Re: [请益] 如何追踪程式run过的sql
时间Thu Nov 28 23:34:37 2013
※ 引述《tas72732002 (葱头)》之铭言:
: 因开发过程有时会碰到bug,如果可以追踪下过的sql,
: 在debug或语法不小心写错等问题都有一些帮助,
: 除了自己透过error_log纪录sql之外,
: 想请问各位有没有什麽工具、套件或各位常用什麽方法来纪录自己程式run过的sql
: 最近想建立一些机制来追朔这方面的问题~
我是参考php.net上的范例
http://tw1.php.net/manual/en/class.pdo.php#97682
网页好读版
http://paste.plurk.com/show/1732077/
class Mysql {
private static $db = null;
/*
* Refenenced by: http://tw1.php.net/manual/en/class.pdo.php#97682
*/
public static function get_db(){
if( self::$db ){
return self::$db;
}
$setting = parse_ini_file("connect.ini");
$user = $setting['username'];
$passwd = $setting['password'];
$database = 'mysql';
try{
self::$db = new PDO( "mysql:host=localhost;dbname=" . $database,
$user, $passwd );
}
catch ( PDOException $e ){
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
return self::$db;
}
public static function __callStatic( $name, $args){
$callback = array( self::get_db(), $name );
var_dump($args); // 在这边记录sql
return call_user_func_array( $callback, $args );
}
}
example.php:
<?php
include 'mysql.inc.php';
$db = Mysql::prepare('Hello ptt');
只要用static的方式使用pdo 就能透过callStatic记录所有的query了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 27.147.46.251
2F:推 s861175:感谢原po 这个方法非常有帮助 12/02 00:48