我正在使用下面的PHP代碼獲取結果以返回到自動建議/自動完成。問題是,如果較早的SQL查詢比最近的SQL查詢花費較長時間從數據庫返回,那麼舊查詢的結果將顯示在自動建議結果框中。因此,如果您開始搜索Thomas,則可能會顯示Tho的結果,如果該SQL查詢需要更長時間。我想知道是否有一種方法可以在實施新的查詢時取消先前的查詢,或者確保使用最近的查詢?確保最新的SQL查詢結果用於自動建議
<?php
// begin XML output
$xmlStr = <<<XML
<?xml version='1.0' standalone='yes'?>
<authors>
XML;
// open database connection
$mysqli = new mysqli("localhost", "user", "pass", "library");
if (mysqli_connect_errno()) {
printf("Connect failed: %s
", mysqli_connect_error());
exit();
}
// retrieve author list matching input
// add to XML document
$q = $mysqli->real_escape_string($_GET['query']);
$sql = "SELECT AuthorName FROM author WHERE AuthorName LIKE '" . $q . "%' ORDER by AuthorName";
if ($result = $mysqli->query($sql)) {
while ($row = $result->fetch_row()) {
$xmlStr .= '<author name="' . $row[0] . '"></author>';
}
$result->close();
}
// clean up
// output XML document
$mysqli->close();
$xmlStr .= '</authors>';
header("Content-Type: text/xml");
echo $xmlStr;
?>
如果這是關係到阿賈克斯之前
XmlHttpRequest.abort()
,您可以添加'ajax'標籤。 – 2012-01-02 16:58:44