繁体   English   中英

Mysqli为非动态变量准备的语句

[英]Mysqli prepared statement for non dynamic variable

我正在学习mysqli准备的语句,对此有一些疑问

  1. 根据我的理解,对于那些具有动态变量的查询,例如登录名(电子邮件和密码),我们使用准备好的语句。

    我想知道对于没有动态元素(例如从数据库中获取用户)的查询是否需要准备语句。 如果我像下面的查询那样执行此操作,则会使其容易受到攻击

     SELECT name, email FROM users 
  2. 如何在不使用绑定参数的情况下使用准备好的语句?

像在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM