2012-05-09 55 views
1

我有以下代碼:傳遞值直接向事先準備好的聲明方法PHP

$stmt = $mysqli->prepare("INSERT INTO account 
          SET accFirstName=?, accLastName=?, accTelephone=?, 
           accAltTelephone=?, accAddress=?, accCountry=?, 
           accCity=?, accRegion=?, accPostalCode=?, 
           accEmail=?, accEmailConfirmed=?, accPassword=?, 
           accType=?, accStatus='A', accDate=NOW(), 
           accOrder=".$acctID); 

我可以直接值傳遞給prepare()結合內部消除它,如:accStatus='A', accDate=NOW(), accOrder=$acctID

這些值不是來自用戶輸入,也不需要在這裏談論安全性。

這是一個php/mysql的正確語法?

之間,我運行查詢和數據正確保存在數據庫中。

非常感謝您的幫助!

+3

是的,沒關係。 –

回答

2

如果同一個查詢與其中的其他數據執行多次相同的查詢,則預處理語句與存儲過程相結合可以獲得更好的性能。如果該查詢僅在每個腳本中運行一次,則可以按照描述執行該操作,但請記住安全性方面的損失。

的例子可以在這裏找到:通過準備好的語句

http://php.net/manual/en/pdo.prepared-statements.php

你的語法/作爲查詢字符串沒有綁定看起來很好。