2015-10-18 95 views
-3

我正在做一个登录表单,我很困惑如何使用绑定参数来选择数据。PHP bind_param转换混淆

我当前的代码如下所示:

$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']); 
    } 

我不明白为什么这不工作

+0

你读过HTTP ://php.net/manual/en/mysqli-stmt.bind-param.php? – FuzzyTree

回答

0

我让你一个小例子:

<?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(); 
+0

如何使用if语句来使用它? – user5455438

+0

在while循环中,您可以使用$ column1和$ column2作为变量,因此您可以在需要时使用它 – Johan

+0

当您说“必须分配每列”时,是指数据库中的所有列还是需要的列对于SELECT语句? – user5455438