Re: [請益] 如何追蹤程式run過的sql
※ 引述《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
→
11/29 02:12, , 1F
11/29 02:12, 1F
推
12/02 00:48, , 2F
12/02 00:48, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章