不要误会我的意思 PDO 很棒,但我不喜欢它的是如何将变量放置在远离它们在 SQL 语句中的位置的地方。意思是我有一个类似的查询:
$stmt = $dbh->prepare("SELECT * FROM users WHERE email = ? AND pass = ?");
替换 的变量?
总是远离以下几行:
$stmt->bindParam(1, $email);
$stmt->bindParam(2, $pass);
如果你有很多参数,这可能会变得非常难看。使用:email
而不是?
不会让它变得更好。有时您会在相同的方法中将参数视为数组,例如:
$db->query("SELECT * FROM users WHERE email = ? AND pass = ?",
array($email, $pass));
稍微好一点,但有 10 个变量,它仍然很难看。您实际上创建了一个?
只使用一次的变量。此伪变量也不支持代码突出显示。
我认为这样会更好
$db->prepare("SELECT * FROM user WHERE email = ", $email, " AND pass = ", $pass);
你甚至可以包括这样的参数binParam()
:
$db->prepare_new(
"SELECT * FROM user WHERE email = ", array($email, PDO::PARAM_STR),
" AND pass = ", $pass);
如果有一个支持这种风格的库,我会很高兴。你认识一个吗?