0

PDO を使用して幅の広いテーブルにレコードを挿入する際の近道はありますか?

これまで、列と値のペアの配列を受け取り、挿入されたレコードの PK を返す Zend_Db_Table を使用してきました。

PDO では、PDOStatement を準備するときにすべてのフィールドを挿入ステートメントにリストし、実行時にすべての値を配列に入力する必要があるようです。遠回りに見えますか?または、何か不足していますか?(「ORM」とは言わないでください)...

ありがとう...

4

2 に答える 2

2

データベース列にデフォルト値を指定すると、挿入時に明示的に値を指定する必要はありません。列を除外すると、デフォルト値が取得されます。

ただし、これには注意してください。暗黙の動作は、予期しないときに戻ってきて噛まれる傾向があります。現在行っているようにすべての列を明示的に指定すると、6 か月後に戻ってソース コードを見たときに、何が挿入されているかが明確になるという利点があります。

于 2012-05-14T09:12:08.740 に答える
0

私があなたの意味を理解していれば。MySQL を使用している場合は、次のようなカスタム挿入ステートメントを作成できます。わかりました、これを行う最善の方法ではありませんが、とにかく..

$data = array(
 'col1' => 'value1',
 'col2' => 'value2',
 'col3' => 'value3',
 'coln' => 'valuen',
 'col1000' => 'value10000'
);


insert into mytable ('.join(',', array_keys($data)).') values ("'.join('", "', $data).'");
于 2012-05-14T09:11:35.153 に答える