Zer*_*x18 2 php mysql pdo prepared-statement
有以下代码
<?php
$age = get_age(); // a generated or random unsigned integer
$db->prepare("SELECT * FROM Customers WHERE name = :name AND age = :age");
$db->bindValue('name', $_POST['name']);
$db->bindValue('age', $age, PDO::PARAM_INT);
$db->execute();
Run Code Online (Sandbox Code Playgroud)
即使它不是来自用户(即外部),我是否应该绑定“年龄”?
如果我有一个固定的年龄或者它是由我以某种方式产生的,我应该这样做吗?
<?php
$age = get_age(); // <- Of course I made sure this is an unsigned integer
$db->prepare("SELECT * FROM Customers WHERE name = :name AND age = $age");
$db->bindValue('name', $_POST['name']);
$db->execute();
Run Code Online (Sandbox Code Playgroud)
每个人都有优点和缺点还是只是个人喜好?
在 PDO 中准备查询时是否应该绑定“内部”值?
是的。
在其生命周期内,您应该理解愚蠢的人工示例和成熟的现实生活代码之间的区别。
如果您想学习如何编写成熟的代码,请考虑以下几点: