2013-10-16 297 views
0

我沒有與phpMyAdmin的連接問題。我的問題是關於我自己的與mySQL服務器連接的腳本。我不喜歡它的手冊說:phpMyAdmin如何連接到mySQL服務器?

new MySQLi($host, $user, $pass, $db); 

但是,如果服務器關閉,腳本掛起,在這一點上,直到超時錯誤。當我嘗試打開phpMyAdmin時,不會發生這種情況,它會立即返回錯誤(#2002)。我希望對我的代碼做同樣的事情,實現從超時錯誤和錯誤處理的轉義。我正在考慮查看phpMyAdmin代碼,看看他們是如何做的,但由於它的支持在這裏,這可能是其他開發者的有用信息(不是因爲我很懶惰),所以我決定提出一個問題。

那麼,任何線索?事件處理?一些異步技術?

+1

你的第一反應是正確的。查看代碼。 – Mchl

+0

不要回答這個問題,我會第二個@ Michi的建議。看看phpMyAdminCode! – Cillier

+0

好吧,我會假裝你知道答案,但希望看到我工作......沒關係,我會問自己,並贏得我的聲譽點。 – Gustavo

回答

1

沒有我看着PhPMyAdmin代碼,我會建議將mysqli超時設置爲儘可能低。

$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 1) 

但是,如果他們有更好的解決方案,我仍然會期待PhPMyAdmin。

+0

我正在測試這個選項,但它在phpMyAdmin中未使用接縫。仍然在尋找... – Gustavo

+0

這種方式可行,但你也應該在命令行中使用「@」,這樣它就不會寫成警告消息(我正在測試過程方式,因爲它是phpMyAdmin的方式)。但是,我沒有在代碼中找到這個設置......這是一個謎! – Gustavo

1

我假設你的phpMyAdmin配置爲使用mysqli擴展名。在當前的版本4.0.8,看在庫中的功能的PMA_DBI_connect()和PMA_DBI_real_connect()/ DBI/mysqli.dbi.lib.php

+0

你知道,我不知道是否使用mysqli。我有3.3版本,但有你提到的文件,我現在看。 – Gustavo

+0

在phpMyAdmin的主頁中,查找「PHP擴展」。 –

0

這是本地主機SQL連接的coorect格式

<?php 
$con = mysql_connect('localhost','root','') or die("Error in connection! "); 
?> 

現在它看起來像你的變量賦值給它如果多數民衆贊成的情況下做這樣的

$hostname="localhost"; 
$username="root"; 
password=""; 

<?php 
$con = mysql_connect('$hostname','$username','$password') or die("Error in connection! "); 
?> 
+0

mysql被棄用,會馬上停止工作,我們應該使用mysqli。 – Gustavo