我有9张桌子。 我创建了一个名为nTables次的reoursive ajax函数(每个用于表) 在ajax中,我调用action.php并对每个表执行搜索。
问题是在执行搜索时,当我点击SHOW PROCESSLIST;在mysql中,只有一个Query在运行时。在我的前端页面中,搜索是一个接一个地执行而不是同时执行。
我能做些什么才能让mysql一次创建9个连接?
这是我的ajax:
function rAjax(thetables, i, thesearch){
i++;
$("#treethetables").hide();
$("#divsearching").show("slow", function() {});
var thetable=thetables[i];
if(i<thetables.length){
$.ajax({
type: "POST",
url: "app/action.php",
data: ({
txtBusca : thesearch,
thetable: thetable,
}),
beforeSend: function(){
$("#"+thetable).html("searching in "+thetable+"...");
},
success: function(data){
totalOkTables--;
console.warn(totalOkTables);
if(totalOkTables==0){
$("#divsearching").hide();
$("#treethetables").show("slow", function() {});
}
$("#"+thetable).append(data)
}
});
rAjax(thetables, i, thesearch)
}
}
这是我对连接的解释:
class vitDb{
private $conn=NULL;
private $db=NULL;
private $selectdb=NULL;
public $dbase;
public function vitDb(){
$hostname_conn = "127.0.0.1";
$database_conn = "myBase";
$username_conn = "root";
$password_conn = "";
$this->conn = mysql_connect($hostname_conn, $username_conn, $password_conn, true) or trigger_error(mysql_error(),E_USER_ERROR);
$this->selectdb = mysql_select_db($database_conn, $this->conn);
$this->db=$database_conn;
}
public function QSet($sql){//Regresa el Juego aunque esté vacío, y NULL si error.
if($theSet=mysql_query($sql, $this->conn)){
return $theSet;
}else{
return NULL;
}
}
}
电话:
$my = new vitDb();
$db=$my->dbase;
$sql="SELECT * FROM $tabla WHERE ...";
$res=$my->QSet($sql);
#Staff
希望可以帮助我。
答案 0 :(得分:-1)
浏览器将您限制为两个同时发出的请求。另外,您在服务器端使用PHP会话吗?如果是,则会话文件使用锁定,以便每次会话一次阻止多个请求。