PHP Mysqli bind_param查询不返回结果

时间:2017-02-19 07:51:14

标签: php mysqli

简介:我正在尝试在我的网站上进行sql-injection证明登录,所以我使用mysqli bind param,我已经按照官方手册中的说明创建了查询php.net,不幸的是它没有按预期工作。

这是我的查询代码:

//Asign post to variables
$var1 = $_POST["email"];
$var2 = $_POST["pwd"];

if(isset($_POST['submit'])){
//Query SQL
$sql = $mysqli->prepare("SELECT * FROM main WHERE email = ? AND pass = ?");
$sql->bind_param("ss", $var1, $var2);
$sql->execute();
$sql->bind_result($email, $pass, $license);
$sql->fetch();

echo $email;
echo $pass;
echo $license;                  
}

因此,这段代码应该回显它从我的数据库中提取的三个字段,但它不会返回任何内容。我的数据库连接非常好,因为这个查询在没有任何类型的bind_param的情况下运行良好。

总结,我想知道为什么它不回应我从Sql查询得到的3个值(它们显示为不存在)

编辑我的错误是我正在使用“bind_result”而不是“get_rersult”,如果您选择所有内容会更好(*)

1 个答案:

答案 0 :(得分:-1)

编辑:抱歉,我没有注意到您正在使用mysqli连接

您可以使用 get_result 代替 bind_result

$sql = $mysqli->prepare("SELECT * FROM main WHERE email = ? AND pass = ?");
$sql->bind_param("ss", $var1, $var2);
$sql->execute();
$rows    = $sql->get_result();
$row     = $rows->fetch_assoc();
$email   = $row['email'];
$pass    = $row['pass'];
$license = $row['license'];