2013-10-16 230 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