對於多個查詢,您需要在調用另一個查詢之前使用多個查詢或關閉結果。例如,如果您使用面向對象的風格編寫代碼。
$conn = new mysqli($servername, $username, $password, $dbname);
$sql="SELECT * FROM mytable";
$result=$conn->query($sql);
echo $result->num_rows;
$sql="SELECT id FROM mytable";
$result2=$conn->query($sql);
echo $result2->num_rows; // does not work because result was not closed.
爲了讓它起作用,請寫下它。
$conn = new mysqli($servername, $username, $password, $dbname);
$sql="SELECT * FROM mytable";
$result=$conn->query($sql);
echo $result->num_rows;
$result->close(); //*********notice this new line. result
//needs to be closed before calling another query
$sql="SELECT id FROM mytable";
$result2=$conn->query($sql);
echo $result2->num_rows; // **this does work because previous result
// was closed.
如果您需要一次執行多個查詢或在完成前一個輸出行之前需要執行查詢,請使用多查詢。我使用多查詢的第二個原因,獲得另一個查詢之前輸出前一個的所有行。這對於嵌套查詢很重要,例如在另一箇中間的查詢中,比如在論壇的多個嵌套線索中,或者在某些網頁上使用嵌套回覆。
下面是在另一個查詢中間完成的一個查詢的示例。
$conn = new mysqli($servername, $username, $password, $dbname);
$sql="SELECT * FROM mytable";
$conn->multi_query($sql);
$result=$conn->store_result();
$count=0;
while($row = $result->fetch_assoc()) {
echo "$result['id'] $result['name'];
if ($count==0) {
// now you can do another query in the middle of this one
$sql="SELECT id FROM mytable";
$conn->multi_query($sql);
$result2=$conn->store_result();
$row2=$result2->fetch_assoc();
echo "result of second query is: $row2['id'] $row2['name']";
}
$count=$count+1;
}
你會得到什麼錯誤? – 2012-07-27 21:07:22
錯誤可能與您的無與倫比的單引號有關嗎? – Palladium 2012-07-27 21:07:53
當然,看起來像引號的問題,發佈錯誤,你會得到幫助,雖然。 – Mahn 2012-07-27 21:08:44