web-dev-qa-db-ja.com

PHP / CodeIgniterを使用してMySQLで最後に実行されたクエリを取得する

WindowsとLinuxの両方でMySQLで実行した最後のクエリを取得するにはどうすればよいですか?

私はPHPおよびCodeIgniterを使用しています。my_model.phpには、次のものがあります。

$query1 = ( ...something... );
$query2 = ( ...something... );
$variables = ( .... something .... );
$this->db->query(" $query1 ... $variables .. $query2", array( $variables, ... ));

上記のコードスニペットの直後に実行される最後のクエリが必要です。

誰でも最後のクエリを取得する方法を教えてもらえますか?

20
soredive

使用する:

$this->db->last_query();

Returns the last query that was run (the query string, not the result). Example:
$str = $this->db->last_query();

// Produces: SELECT * FROM sometable.... 

クエリヘルパー関数 に関するマニュアルからの例

50
Damien Pirsy

Config/database.phpで、config配列を設定する必要があります: 'save_queries' => TRUE、falseの場合、last_query()関数が機能しない。

3
progman

CodeIgniterには、ヘルパー関数$this->db->last_query();があります。

これは、最後のクエリの文字列を返します。

しかし、私はあなたが結果を得る方法を尋ねているかもしれないと思う、その場合はあなたがするだろう:

$query1 = ( ...something... );
$query2 = ( ...something... );
$variables = ( .... something .... );
$query = $this->db->query(" $query1 ... $variables .. $query2", array( $variables, ... ));

foreach ($query->result() as $row) {
//code goes here
}

詳細については、 CIの例 をご覧ください。

1
tplaner