2013-09-28 19 views
0

我還在學習長輪詢與阿賈克斯,並找到一些例子,從這篇文章here做和管理代碼來做到這一點:數據庫錯誤執行長輪詢AJAX

function poll() { 

    var email = '[email protected]'; 

$.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); 
      } 

     } 
    }); 
} 

但是,這個代碼運行後不久,我有錯誤信息,告訴數據庫一長串無法連接:

警告:mysql_connect()函數[function.mysql-連接]:[2002]每個套接字地址的只有一個使用(協議/網絡地址/(嘗試通過tcp:// localhost:3306連接)在C:\ xampp \ htdocs \ mynewproject \ db_connection.php on lin e 2

之後,我無法打開phpMyAdmin在我的本地主機(我必須重新啓動我的電腦)。

任何人都可以指向我更好的方式來保持良好的連接數據庫長輪詢,或者如何清除/停止ajax調用成功回調之前ajax超時耗盡並重復它自我?

任何建議非常感謝,謝謝。

+0

什麼是你的PHP文件是什麼樣子?幫助我們打破這個問題。 – Darren

+0

這是我的php代碼:<?php include(「db_connection.php」); $ email = $ _REQUEST ['email']; $ q =「SELECT * FROM'members' WHERE'email' ='$ email'」; $ r = mysql_query($ q); $ d = mysql_fetch_array($ r); $ nt = $ d ['name']; if($ nt =='') { \t \t echo'no'; \t \t \t } 別的 { \t \t 回聲 '是'; \t \t} ?> – ani

+0

請告訴我的** ** db_connection.php代碼,多數民衆贊成在錯誤似乎來自何處。 – Darren

回答

0

你應該去看看你的httpd.conf或您的.htaccess,找到一個名爲keepalivetimeout設置,並將其設置爲minimummaximum。 之後重新啓動您的本地服務器。如果它們不存在於任何一個文件中,則需要將其添加到那裏。現在(Read More

爲您的數據庫處理,你應該使用像的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); 

?>

+0

嗨,@dbh謝謝你的回答。我設法在httpd.default中找到「KeepAliveTimeout」設置。但它說我必須輸入數字,而不是字符串「最小」。你可以給我什麼號碼,我應該進入? – ani

+0

@ani閱讀了[Apache httpd.conf KeepAliveTimeout](http://httpd.apache.org/docs/2.2/mod/core.html#keepalivetimeout) – Darren