0

下面我有一个成功工作的 mysqli 查询;

$courseid = (isset($_POST['courses'])) ? $_POST['courses'] : ''; 
$moduleid = (isset($_POST['moduleid'])) ? $_POST['moduleid'] : '';  
$moduleno = (isset($_POST['moduleno'])) ? $_POST['moduleno'] : '';  
$modulename = (isset($_POST['modulename'])) ? $_POST['modulename'] : '';

$query = "SELECT cm.CourseId, CourseNo, CourseName, cm.ModuleId 
FROM  Course c 
INNER JOIN Course_Module cm 
ON
c.CourseId = cm.CourseId
JOIN Module m
ON
cm.ModuleId = m.ModuleId
WHERE cm.CourseId = ? AND cm.ModuleId = ?";
// prepare query
$stmt=$mysqli->prepare($query);
// You only need to call bind_param once
$stmt->bind_param("ii", $courseid, $moduleid);
// execute query
$stmt->execute(); 
// get result and assign variables (prefix with db)
$stmt->bind_result($dbCourseId, $dbCourseNo, $dbCourseName, $dbModuleId);
//get number of rows
$stmt->store_result();
$numrows = $stmt->num_rows();

我遇到的问题是在我的成功消息中。它能够输出$modulenoand$modulename变量,但它不会在成功消息中输出$dbCourseNoand变量。$dbCourseName为什么是这样?

if ($numrows == 1){

echo "<span style='color: green'>The following Module has been added into Course:" . $dbCourseNo . " - " . $dbCourseName . ":<br/>" . $moduleno . " - " . $modulename . "</span>";

}
4

1 回答 1

0

您实际上从未获取过结果,并且我怀疑确实显示的变量在先前的操作中已经过时。

$stmt->execute(); 
// get result and assign variables (prefix with db)
$stmt->bind_result($dbCourseId, $dbCourseNo, $dbCourseName, $dbModuleId);

// Can't remember, but you may need to call store_result() before bind_result() ??
// maybe not...
$stmt->store_result();
$numrows = $stmt->num_rows();
// Fetch the row...
$stmt->fetch();
// Now your variables are populated.
于 2012-12-13T00:49:38.457 回答