php - 无法使用 mysqli_connect 进行连接,但 mysql_connect 有效..?

标签 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');
?>

错误:

Warning: mysqli_connect(): (HY000/2005): Unknown MySQL server host 'localhost/tmp/mysql5.sock' (1) in /homepages/... ... ... /purge.php on line 10 Error connecting to MySQL server

凭据都是一样的。事实上,它在使用 mysql_connect() 连接时工作,但它不想使用 mysql_connect() 工作!关于可能导致问题的原因有什么想法吗?

最佳答案

要么您误解了 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'); 

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

关于php - 无法使用 mysqli_connect 进行连接,但 mysql_connect 有效..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26042994/

相关文章:

php - symfony 2 sylius 包丢失(TranslationBundle)

php - 如何将变量设置为 select 语句上的默认选择以及从数组中列出选择

javascript - Devbridge JQuery 自动完成不适用于 serviceUrl

mysql - 复杂的MySQL "ORDER BY"

MySQL - 如何将数据库组织到文件夹中

php - 使用 Codeigniter 制作面包屑的最佳方法是什么?

php - ZF2 查询结果不正确

sql - MySQL加入问题

mysql innodb 和 myisam 之间的更新时间

java - 建议实现此类概念的链接 - java 和 mysql