ethna では、WHERE句のIN(?)で配列を渡せる。これに慣れ、複数レコードの一括更新でPEAR::DBを記述する時つい
$ethnadb =& $this->backend->getDB(); $peardb =& $ethnadb->db; $stmt = "UPDATE tablename SET fieldname=? WHERE cd IN(?)"; $cd = array( 10, 20, 30 ); $data = array( 99, $cd ); if( DB::isError( $peardb->query( $stmt, $data ) ) ){ : } $this->backend->log( LOG_INFO, '[%s]', $peardb->last_query );残念ながら、プレイスフォルダの IN(?) に配列は展開されない。
$cd = implode( ',', $cd );が必要。