【问题标题】:PHP bind_param conversion confusion [duplicate]PHP bind_param转换混乱[重复]
【发布时间】:2015-10-18 14:57:41
【问题描述】:

我正在制作一个登录表单,但我对如何使用绑定参数来选择数据感到很困惑。

我当前的代码如下所示:

$stmt = $mysqli_conn->query('SELECT * FROM user WHERE email = ? AND password = ?');
    $stmt->bind_param('ss', $emailclean, $passwordclean);

    $stmt->execute();

    $result = $stmt->get_result();
    if ($row = $result->fetch_assoc()) {
        $finalmessager['success'] = 'You are logged in';
        $_SESSION['finalmessagelog']= $finalmessager;
        $_SESSION['authenticateduser']= $emailclean;
        header('location:../index.php');
        unset($_SESSION['logErrors']);
    }

我不明白为什么这不起作用

【问题讨论】:

标签: php mysqli bindparam


【解决方案1】:

我举个小例子:

<?php
$query = "SELECT * FROM user WHERE email = ? AND password = ?";
$stmt = $this->db->prepare($query);
$stmt ->bind_param("ss", $emailclean, $passwordclean); //both are strings
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($column1, $column2); //you have to assign every column

    while($stmt->fetch())
{
    if($column1 == 1){ //first column is id? just guessing
      echo "its the id 1 yeah!";
    }
    echo "col1: $column1, col2: $column2 \n";
}

$stmt->close();

【讨论】:

  • 如何使用 if 语句?
  • 在 while 循环中,您可以使用 $column1 和 $column2 作为变量,以便您可以随意使用它
  • 当您说“您必须分配每一列”时,您是指我数据库中的所有列还是 SELECT 语句所需的列?
  • 您正在选择的列,如果您在每个示例中使用“SELECT id, name FROM user”,则应将 $id 和 $name 指定为“$stmt->bind_result($id, $name) ;"变量的名称实际上并不只是顺序,而是以这种方式更有条理
猜你喜欢
  • 1970-01-01
  • 2011-08-21
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 2014-02-18
  • 2016-01-15
  • 2017-01-08
  • 2013-11-29
相关资源
最近更新 更多