使用PDO将记录插入宽表中

时间:2012-05-14 09:05:21

标签: php pdo

使用PDO将记录插入宽表时是否有任何快捷方式?

到目前为止,我一直在使用Zend_Db_Table,它接受一对列/值对的数组并返回插入记录的PK。

使用PDO时,我似乎需要在准备PDOStatement时在insert语句中列出所有字段,然后在执行时输入包含所有值的数组。好像很长的路?或者我错过了什么? (请不要说'ORM')......

...谢谢

2 个答案:

答案 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).'");