我正在将现有的数据存储 php 代码从mysql_*
函数更改为 PDO,并将其从过程更改为 OOB 编程。当我注意到一些事情时,我正在更新 SQL 语句,这已经进入了重写过程。
我正在为多个表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 语句那么简单。