我在查询中可以使用的结果出现问题。代码:
//Create query
$stmt = $con->stmt_init();
$query = "SELECT * FROM `users` WHERE `userlogin` = '$username' AND `user_passwrd` = sha1(CONCAT('$userpw', `stamp`))";
$result = $con->query($query);
$rows = array();
if($stmt->prepare($query)) {
if($stmt->execute()) {
while($row = $result->fetch_array()) {
$rows[] = $row;
}
}
}
$result->free();
var_dump($row); //Returns NULL
die();
$num = mysqli_num_rows($result);
$ulogin = $row['userlogin'];
$pending = $row['pending'];
$acclvl = $row['user_accesslevel'];
我可以用var_dump($ rows)获得结果,但我显然在这里做错了。我无法填充变量,也不知道为什么。任何帮助,将不胜感激。 干杯
答案 0 :(得分:1)
您正在遍历生成的行,直到没有更多结果,fetch_array()
(从而$row
)为NULL;
while($row = $result->fetch_array()) {
$rows[] = $row;
}
...所以...
var_dump($row); //Returns NULL
......不再是一个惊喜:)
这样做的一个简单方法就是这样(不能测试运行这个,所以请多看一下提示, 应该真正参数化你的查询)
$query = "SELECT * FROM `users` WHERE `userlogin` = '$username' AND `user_passwrd` = sha1(CONCAT('$userpw', `stamp`))";
$result = $con->query($query);
if(!$result)
die("horribly");
$row = $result->fetch_array()
$result->free();