无法使用mysqli_connect连接,但mysql_connect有效..?

bbo*_*man 4 php mysql

我获得了直接从我的托管服务提供商(1and1)连接到MySQL的凭据.但是,当我尝试连接以下代码时:

$db_hostname = 'localhost/tmp/mysql5.sock';
$db_database = 'db543062602';
$db_username = '***********';
$db_password = '***********';

$dbc = mysqli_connect($db_hostname, $db_username, $db_password, $db_database)
    or die('Error connecting to MySQL server');
?>
Run Code Online (Sandbox Code Playgroud)

错误:

警告:mysqli_connect():( HY000/2005):未知的MySQL服务器主机'localhost/tmp/mysql5.sock'(1)在/ homepages/... ... .../buge.php第10行连接错误到MySQL服务器

凭证都是一样的.实际上,它在使用mysql_connect()连接时有效,但它不想使用mysql_connect()!有什么可能导致问题的想法?

Bil*_*win 10

要么误解了1和1中的指令,要么他们犯了错误.

阅读mysqli_connect()的手册页.它显示第一个参数应该是主机名,可以是名称或IP.不要在该参数中包含套接字.

您可以选择将套接字文件指定为第六个参数.

/* WRONG */
mysqli_connect('localhost/tmp/mysql5.sock', ... );

/* WRONG */
mysqli_connect('localhost:/tmp/mysql5.sock', ... );

/* RIGHT */
mysqli_connect('localhost', $db_username, $db_password, $db_database, null, '/tmp/mysql5.sock'); 
Run Code Online (Sandbox Code Playgroud)

另外,我想知道为什么他们甚至要求你指定套接字.他们应该在主机的php.ini文件中定义一个默认值,所以你不必这样做.除非他们在同一台主机上运行多个mysqld实例.