我仍然学习使用ajax进行长轮询,并且很少从本文这里和管理代码中找到几个例子来完成它:
function poll() {
var email = 'foo@yahoo.com';
$.ajax({
type: "post",
url: "testlongpolling.php",
data: "email="+email,
dataType:'json',
complete: poll,
timeout: 30000,
success: function(result){
if(/(yes)/.test( result.status ))
{
$('#status').html(result.name);
}
else
{
$('#status').html(result.name);
}
}
});
}但是,在这段代码运行后不久,我收到了一长串错误消息,告诉数据库无法连接:
警告:在第2行的C:\xampp\htdocs\mynewproject\db_connection.php中,mysql_connect() function.mysql- connect : 2002只使用一个套接字地址(协议/网络地址/(试图通过tcp://localhost:3306连接)
之后,我无法在本地主机上打开phpMyAdmin (我必须重新启动计算机)。
有人能告诉我如何更好地保持与数据库的良好连接,以便进行长时间轮询,或者在ajax超时运行完毕并自我重复之前,如何清除/停止ajax调用的成功回调?
任何建议都非常感谢,谢谢。
发布于 2013-09-28 00:47:51
您应该查看您的httpd.conf或.htaccess,并找到一个名为keepalivetimeout的设置,并将其设置为minimum 而不是 maximum。然后重新启动本地服务器。如果在任何一个文件中都不存在它,则需要将其添加到其中。(阅读更多)
现在,对于数据库处理,您可能应该使用类似于mysqli的类,因为mysql的开发已经停止。
<?php
// Start new mysqli
$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
// Check if the connection failed
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
// Run a query
$query = "SELECT * FROM `users` WHERE `$email`='$email'";
$result = $mysqli->query($query) or die($mysqli->error . __LINE__);
// Loop through the data
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo stripslashes($row['username']);
}
} else {
echo 'NO RESULTS';
}
// CLOSE CONNECTION
mysqli_close($mysqli);?>
https://stackoverflow.com/questions/19061973
复制相似问题