6

mysqlのupdateステートメントの後に影響を受ける行(影響を受ける行の数だけでなく)を取得する方法。

4

4 に答える 4

3

mysql_info — 最新のクエリに関する情報を取得する

$recent = mysql_info();

便利な実装

于 2012-05-15T07:23:50.473 に答える
1

影響を受ける行の量ではなく、実際の行が必要な場合は、更新を行う前にそれらを取得するだけです。

その後、更新値を選択した値と比較し、差によってそれらをフィルタリングできます。

CodeIgniter の例:

$arr_where = array('date >=' => date('Y-m-d H:i:s'));

$query = $this->db->get_where('table', $arr_where);

$arr_update = array('status' => 'TRUE');

if ($this->db->update('table', $arr_update, $arr_where)) {

    foreach($query->result() as $row)
        foreach(array_keys($arr_update) as $h)
            if ($row->$h != $arr_update[$h])
                echo "This row ({$row->id}) had it's {$h} changed!<br />";

}

CodeIgniter でソリューションを提供して申し訳ありませんが、それが最も単純な例であることがわかりました。

$this->db関数が何をするかを確認するには、 Active Recordsを参照してください。

于 2012-05-15T07:25:43.467 に答える
-1

PHPを使用しているので、影響を受ける行の数を取得するためにmysql_affected_rows()を使用できます。

于 2012-05-15T07:20:08.760 に答える