【发布时间】:2018-01-29 21:59:21
【问题描述】:
您好,我正在使用 php 和 mysqli 语句进行简单的 crud 项目。
首先一切正常,但例如mysqli_num_rows($result) 返回不止一行会导致所有错误。
这是我的 PHP 代码
<?php
if(isset($_GET["email"]) && !empty(trim($_GET["email"]))){
// Include config file
require_once 'db.php';
// Prepare a select statement
$sql = "SELECT * FROM interns WHERE email = ?";
if($stmt = mysqli_prepare($con, $sql)){
// Bind variables to the prepared statement as parameters
mysqli_stmt_bind_param($stmt, "i", $param_id);
// Set parameters
$param_id = trim($_GET["email"]);
// Attempt to execute the prepared statement
if(mysqli_stmt_execute($stmt)){
$result = mysqli_stmt_get_result($stmt);
if(mysqli_num_rows($result) == 1){
/* Fetch result row as an associative array. Since the result set
contains only one row, we don't need to use while loop */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
// Retrieve individual field value
$firstname = $row["firstname"];
$lastname = $row["lastname"];
$cin = $row["cin"];
$phone_number = $row["phone_number"];
$address = $row["address"];
$school = $row["school"];
$intern_duration = $row["intern_duration"];
$departement = $row["departement"];
$cv = $row["cv"];
$internship_report = $row["internship_report"];
} else{
// URL doesn't contain valid id parameter. Redirect to error page
}
} else{
echo "Oops! Something went wrong. Please try again later.";
}
}
// Close statement
mysqli_stmt_close($stmt);
} else{
// URL doesn't contain id parameter. Redirect to error page
header("location: error.php");
exit();
}
?>
我知道这可能是一个非常简单的错误,但它让我发疯了 xD
【问题讨论】:
-
“未定义变量” 是哪一个?我数不清你有多少心血来潮
-
它的 $row 因为 mysqli_num_rows($result) == 1 无效它返回 2 行但应该只返回 1
-
将
mysqli_num_rows($result) == 1更改为mysqli_num_rows($result) >0 -
mysqli_stmt_bind_param($stmt, "i", $param_id)应该是s。 -
如果我按照你说的做,我会尝试让一行活着,我总是返回第一行