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