作者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