我一直在試圖執行一個多重查詢,所以我已經尋找更好的方法如何做到這一點,我已經閱讀了這個mysqli_multi_query在PHP中。php的mysqli_multi_query不工作
我試了我自己看到的結果,但它不斷給我錯誤。這裏的代碼:
$studid = $_GET['stud_id'];
$classcode = $_GET['class'];
$conn = new MySQLi($host, $username, $password, $dbname) or die('Can not connect to database');
$sql = "SELECT * FROM tbl_students WHERE stud_id = '".$studid."'";
$sql.= "SELECT * FROM tbl_classes WHERE class_code = '".$classcode."'";
if (mysqli_multi_query($conn, $sql)) {
do {
/* store first result set */
if ($result = mysqli_store_result($conn)) {
while ($row = mysqli_fetch_row($result)) {
$studname = $row[3].", ".$row[1];
}
mysqli_free_result($result);
}
/* print divider */
if (mysqli_more_results($conn)) {
printf("-----------------\n");
$studname = $row['fname'];
}
} while (mysqli_more_results($conn));
}else{ echo "error";}
$conn->close();
有了上面的代碼,它只會從我設置的else語句打印錯誤。我也嘗試將第二個查詢更改爲$sql .= "SELECT * FROM tbl_classes WHERE class_code = '".$classcode."'";
,並試圖在第一個查詢之後放置分號,以告訴SQL我完成了第一個查詢,因爲我將2個字符串放在一起,但仍然沒有運氣。
你需要一個分號裏面的分號 –
@Dagon正如我所說的,我已經嘗試過了。我試過這樣的'$ sql =「SELECT * FROM tbl_students WHERE stud_id ='」。$ studid。「';」;'但它會一直持續加載。 – kmf
坦誠地說,在10年內我從來沒有使用MySQL多 –