我改變現有的數據存儲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