Mysqli为非动态变量准备了声明

时间:2013-12-02 07:55:58

标签: php mysql mysqli prepared-statement

我正在学习mysqli准备好的陈述并且有一些关于它的问题

  1. 根据我的理解,我们对那些在其中包含动态变量的查询使用预准备语句,例如在login - email&密码。

    我想知道准备语句是否对于没有动态元素的查询是必要的,例如从数据库中获取用户。如果我这样做,就像下面的查询一样,这会使它变得脆弱

    SELECT 
        name, email 
    FROM
        users
    
  2. 如何在不使用bind param的情况下使用预准备语句?

  3. 就像在pdo中一样,我们喜欢这个

    $array=array($email,$pass);
    $db->query("SELECT name from users where email=? and password=?");
    $db->execute($array);
    

    我可以在mysqli中做这样的事情吗?我搜索并找到了使用bind param的结果,没有使用bind。

1 个答案:

答案 0 :(得分:-1)

您的答案如下:

1.看到这个 - 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);