【发布时间】:2017-05-21 15:48:00
【问题描述】:
我想看看我的查询是否成功(虽然我成功地执行了插入查询)但在第 25 行得到了这个错误:“mysqli_num_rows() 期望参数 1 是 mysqli_result, boolean given” 我已经检查每一行,我什至使用 mysqli_affected_rows 并失败了。感谢任何帮助,这是我的代码:
<?php
include "connection.php";
$fn = $_POST['first_name'];
$ln = $_POST['last_name'];
$uname = $_POST['username'];
$pwd = $_POST['password'];
$stat = $_POST['status'];
if($fn=="" || $ln=="" || $uname=="" || $pwd=="" || $stat==""){
echo "ALL FIELD MUST BE FILLED!";
}
else {
$sql = "SELECT * from user WHERE username='$uname'";
$result = mysqli_query($conn, $sql);
$number = mysqli_num_rows($result);
if ($number != 0) {
echo "Username $uname is not available";
}
else {
$options = ['cost' => 12];
$pwd = password_hash($pwd, PASSWORD_BCRYPT, $options);
$query = "INSERT INTO user
(username,password,first_name,last_name,status) VALUES
('$uname','$pwd','$fn','$ln','$stat')";
$res = mysqli_query($conn, $query);
$nmb = mysqli_num_rows($res);
echo $nmb;
}
}
?>
【问题讨论】:
-
第 25 行是哪一行?因为这意味着查询没有正确执行
-
你使用的是 MySQL,我建议使用PDO。
-
@FluxCoder 这对 PDO 仍然有同样的问题。
-
@Don'tPanic 但是,使用 PDO 更安全,我更喜欢它,因为我发现它也更容易使用。
-
PDO 本身并不安全。使用准备好的语句更安全,但这在 mysqli 中也是可能的,但这里没有这样做,所以我不认为他们会用 PDO 来做。 (不过,我也更喜欢它。我同意它更容易。)
标签: php mysqli insert-into