0

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

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

使用 PDO 时,似乎我需要在准备 PDOStatement 时在插入语句中列出我的所有字段,然后在我执行它时输入一个包含我所有值的数组。似乎路途遥远?还是我错过了什么?(请不要说“一个 ORM”)......

谢谢...

4

2 回答 2

2

如果您在数据库列上指定默认值,那么您不必在插入时显式指定值。如果您离开该列,那么它将获得默认值。

不过要小心这一点,内隐行为往往会在你最意想不到的时候回来咬你。像现在这样明确指定每一列的好处是,当您在六个月后返回并查看源代码时,可以清楚地看到插入的内容。

于 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 回答