我改变现有的数据存储PHP代码从mysql_*
功能PDO以及从程序改变它OOB编程。我在注意到某些事情时更新了SQL语句,这与重写过程相差甚远。对PDO数组插入值的顺序有限制吗?
我正在设置为多个表INSERT
和UPDATE
查询的阵列,因为我定义数组作为我注意到结合值的工作,该顺序,其中结合值称为将来自UPDATE
不同到INSERT
,这里是一个简单的例子:
$bound_values = array(
':column_aa' => 'aa',
':column_ab' => 'ab',
':column_ac' => 'ac'
)
);
例如,SQL为INSERT
:
INSERT INTO `table_a`
(`id`, `column_aa`, `column_ab`, `column_ac`)
VALUES
('', :column_aa, :column_ab, :column_ac);
和UPDATE
:
UPDATE `table_a` SET
`column_ab` = :column_ab, `column_ac` = :column_ac, `column_aa` = :column_aa;
示例PHP PDO:
$pdo = new PDO('mysql:host=localhost;dbname=example', 'root', '');
// The second parameter of the PDO cursor is what I saw that raised the flag
$sth = $pdo->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute($boud_values);
所以我的问题是,我可以不停地前进使用这种方法没有问题,至于是什么为了使SQL语句与$bound_values
数组相匹配,还是我很关心并需要做出一些更改?
请注意,我正在使用的现有代码并不是附近的,就像我上面显示的SQL语句一样简单。
只要您使用命名的标识符,而不是简单'?'那么也不要紧什么顺序排列是英寸 – Sammitch
好消息,这就是为什么我开始使用命名的标识符,但每一个例子,我看到了他们然后看到'CURSOR_FWDONLY'我开始担心。谢谢@sammitich,如果你会如此友善,请发表您的评论作为答案,我会接受它。再次感谢。 –
只要接受,@ robert-widdick's。这也是对的,他可以使用一些观点。; D – Sammitch