使用PDO将记录插入宽表时是否有任何快捷方式?
到目前为止,我一直在使用Zend_Db_Table,它接受一对列/值对的数组并返回插入记录的PK。
使用PDO时,我似乎需要在准备PDOStatement时在insert语句中列出所有字段,然后在执行时输入包含所有值的数组。好像很长的路?或者我错过了什么? (请不要说'ORM')......
...谢谢
答案 0 :(得分:2)
如果在数据库列上指定默认值,则在执行插入时不必显式指定值。如果您将列留出,则它将获得默认值。
要小心这一点,隐含的行为往往会在你最不期望的时候回来咬你。像你现在所做的那样明确指定每一列的优点是,当你回过头看六个月后的源代码时,很清楚插入了什么。
答案 1 :(得分:0)
如果我明白你的意思。如果您使用MySQL,您可以像这样创建自定义插入语句。好的,不是最好的方法,但无论如何......
$data = array(
'col1' => 'value1',
'col2' => 'value2',
'col3' => 'value3',
'coln' => 'valuen',
'col1000' => 'value10000'
);
insert into mytable ('.join(',', array_keys($data)).') values ("'.join('", "', $data).'");