mysqlのupdateステートメントの後に影響を受ける行(影響を受ける行の数だけでなく)を取得する方法。
13061 次
4 に答える
3
于 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 に答える