[英]Mysqli prepared statement for non dynamic variable
我正在学习mysqli准备的语句,对此有一些疑问
根据我的理解,对于那些具有动态变量的查询,例如登录名(电子邮件和密码),我们使用准备好的语句。
我想知道对于没有动态元素(例如从数据库中获取用户)的查询是否需要准备语句。 如果我像下面的查询那样执行此操作,则会使其容易受到攻击
SELECT name, email FROM users
如何在不使用绑定参数的情况下使用准备好的语句?
像在pdo中一样
$array=array($email,$pass);
$db->query("SELECT name from users where email=? and password=?");
$db->execute($array);
我可以在mysqli中做类似的事情吗? 我搜索并找到了使用bind param的结果,如果不使用bind则什么也没有。
您的答案如下:
1.请参阅this- stackoverflow.com/questions/5108414/mysqli-query-vs-prepare-(AdRock在其评论中发布的链接。)
2.而不是-
$db->query("SELECT name from users where email=? and password=?");
$db->bind_param("ss", $email, $password);
$db->execute($array);
你可以这样做-
$db->query("SELECT name from users where email='$email' and password='$password'");
$db->execute($array);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.