我要做的是添加一个开始&结束我的SQL查询的计时器,以便我可以跟踪正在执行的查询数量和需要多长时间。
我使用我编写的PHP类来处理所有数据库连接和查询。它工作正常。我似乎无法将任何值写入$queries
数组,这将节省查询所用的时间。
class db {
public $queries = array(); // Can't write to this
public function connect() {
static $con;
if (!isset($con)) {
$con = mysqli_connect('localhost','USER','PASS','DB');
}
if ($con === false) {
mysqli_connect_error();
}
return $con;
} // end connect
public function query($query) {
$start = microtime(true); // Start here
$con = $this->connect();
$result = mysqli_query($con,$query);
$queries[] = microtime(true) - $start; // Write to array
return $result;
}
public function getCount() {
return sizeof($this->queries);
}
public function getTime() {
return number_format(array_sum($this->queries), 5);
}
} // end db class
$db = new db;
$query = $db->query("SELECT * FROM table");
while($items = $query->fetch_assoc()) {
// Do some stuff
}
echo 'Ran '.$db->getCount().' queries in '.$db->getTime().' sec.'; // Always returns 0
我知道我只是缺少一些简单的东西,我似乎无法找到它是什么。
答案 0 :(得分:0)
将$queries[]
替换为$this->queries[]
。
答案 1 :(得分:0)
如果您想要访问对象成员,则需要使用$this
:
$this->$queries[] = microtime(true) - $start; // Write to array
同样,当你想要从中读取时,否则你正在访问方法本地的$queries
变量。
请参阅:https://secure.php.net/manual/en/language.variables.scope.php