有什么理由可以解决这个问题吗?
以下是代码:
$dbc = mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
echo $dbc;
if(!$dbc){
die('could not open a connection'.mysqli_connect_errno() . mysqli_connect_error());
}
同样,如果我用mysql替换mysqli,我会得到一个返回的dbc资源id(我认为这很好)。我想使用mysqli,因为我听到它更好/更快。现在我收到错误代码2003。
答案 0 :(得分:3)
mysql_connect()
和mysqli_connect()
使用php.ini文件中的两个不同的默认端口。我不认为这些会与标准默认值3306不同,但值得检查或尝试添加主机URL的路径。
mysqli mysqli_connect(... int $ port = ini_get(“ mysqli.default_port ”)...)
如果PHP指令 mysql.default_host 未定义(默认),则默认值为“localhost:3306”。在SQL安全模式下,将忽略此参数,并始终使用值“localhost:3306”。
编辑:我错了,因为我没有阅读手册页。
<击>
我认为您的连接很好,但您不希望检查它返回的对象,如上所述。您想要使用mysqli_connect_errno()
。以下是PHP.net的示例。
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
击>注意:
仅限OO语法:如果是连接 失败仍然返回一个对象。至 然后检查连接是否失败 使用mysqli_connect_error() 函数或mysqli-&gt; connect_error 如前例所示的财产。
<击> Source 击>
答案 1 :(得分:1)
mysqli_connect和mysql_connect采用不同的参数并返回不同的值。
答案 2 :(得分:0)
考虑使用
$dbc= new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);