2012-05-14 30 views
0

當使用PDO將記錄插入寬表時,是否有任何快捷方式?使用PDO將記錄插入寬表中

到現在爲止,我一直在使用Zend_Db_Table,它接受一個列/值對的數組並返回插入記錄的PK。

對於PDO,似乎我需要在準備PDOStatement時列出插入語句中的所有字段,然後在執行時使用所有值填充數組。似乎漫長的路?或者我錯過了什麼? (請不要說'ORM')...

謝謝...

+0

你是否實際上插入了所有的字段?或者你只是在其中一些上使用默認值? – Corbin

回答

2

。如果你離開列,那麼它會得到默認值。

雖然要小心,但隱含的行爲有一種傾向,當你最不期待的時候會回來咬你。顯式指定每一列像你現在正在做的那樣,有一個好處,就是清楚當你回顧並在六個月後查看源代碼時插入了什麼。

0

如果我明白你的意思。如果你正在使用MySQL,你可以像這樣創建自定義插入語句。 OK OK,如果你在你的數據庫列指定默認值,那麼你沒有當你插入顯式地指定值不是最好的方式做到這一點,但反正..

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


insert into mytable ('.join(',', array_keys($data)).') values ("'.join('", "', $data).'");