« Ethna 2.3.x 以前でsmartyプラグイン | メイン | 新たにUSBポートを搭載 »

php

プレイスフォルダの IN(?)

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 );
が必要。

トラックバック

このエントリーのトラックバックURL:
https://www.remix.asia/cgi/mt/mt-tb.cgi/6703

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)