PDO как мне вернуть общее количество выполненных запросов - PullRequest
2 голосов
/ 14 декабря 2010

с упаковкой mysql

function query($msql)
{
    $this->last_connection =& $this->connection;
    $this->msql =& $msql;
    $queryult = mysql_query($msql, $this->connection);
    if ($queryult) {
        $this->queries_count++;
        return $queryult;
    } else {
        $this->display_errors();
        return false;
    }
}

function num_queries()
{
    return @$this->queries_count;
}

Как с помощью PDO получить общее количество выполненных запросов.

Ответы [ 2 ]

1 голос
/ 15 декабря 2010

PDO не считает запросы.Вы должны реализовать это самостоятельно, например, с помощью специального расширения класса PDO.

0 голосов
/ 15 декабря 2010

Если вы считаете свои запросы в одном процессе / запросе и вам необходимо знать, сколько из них выполняется в ходе выполнения одной задачи, вы можете встроить эту функцию прямо в объект базы данных, используя магические функции _construct и _destruct, если вы на php 5.3. Поскольку ваша существующая функция для запросов в вашем объекте увеличивает этот счетчик, вы можете сохранить его.

Напишите функцию _destruct, которая сохранит количество повторений функции запроса до файла журнала в системе или в заранее определенном месте в базе данных. Это сохранит значение свойства query_count там, где вы сможете его использовать.

function _destruct(){
//write a log file with the value or a serialized version of the database object itself
//set the mode to w+ so it truncates every request
$fh = fopen('/path/to/a/new/log' 'w+');
fwrite($fh, $this->queries_count);
fclose($fh);
}

Это будет выполняться каждый раз, когда ваш объект базы данных GC'ed. Затем вы можете написать статический метод, чтобы открыть файл и прочитать значение.

public static function getLastQueriesCount(){
  $fh = fopen('/path/to/a/new/log' 'r+');
  $count = fgets($fh);
  fclose($fh);
  return $count;
}

Конечно, вам понадобятся права на запись, установленные для этого файла / каталога. Вы можете заменить тела функций для хранения счетчика, как вам нравится - будь то простой формат файла или в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...