我有以下代码:
$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正确的语法吗?
之间,我运行查询,数据正确保存在数据库中。
非常感谢你的帮助!
答案 0 :(得分:2)
与存储过程相结合的预处理语句会有更好的性能。如果该查询仅在每个脚本中运行一次,您可以按照描述执行,但请记住安全性损失。
示例可以在这里找到:
http://php.net/manual/en/pdo.prepared-statements.php
查询的语法/字符串没有预编译语句的绑定看起来很好。