为什么当我尝试在PHP中使用无效的数据库信息(比如错误的数据库名称)创建一个新的mysqli对象时,它没有立即返回错误?我通常用Java编写服务器程序,像这样的东西会立即抛出错误,而不是在大约20秒之后。
例如
$conn = new mysqli($host, $username, $password, $database);发布于 2010-06-03 22:03:54
如果主机、用户名和密码都正确,则会立即返回错误的数据库名称。但是,如果主机名不正确,连接尝试将首先超时。不正确的用户名和密码错误也会立即返回。
发布于 2010-06-03 22:31:23
这是因为请求无效,因为缺少重要的凭据或该凭据不正确;或者数据库不可访问。
如果主机名、用户名和/或密码不正确,则SQL请求必须超时才能返回。PHP中的标准超时时间被设置为,我相信,是20秒,所以它将很好地匹配您正在经历的情况。尽管无效的数据库名称不会发生这种情况,因为这只会使请求立即失败。
要检查错误,可以调用mysql_error()从PHP获取错误的规范,或者调用mysql_errno()获取错误代码。通过编辑php.ini文件(如果您有权访问它),可以将标准超时时间设置为一个较小的值;将后面跟mysql.connect_timeout的值(即,在php.ini中)设置为您想要的任何超时时间,以秒为单位。在正常情况下,5秒或更长的超时时间是好的,甚至可能是不必要的大。
https://stackoverflow.com/questions/2966645
复制相似问题