PHP:mysqli的未知MySQL服务器主机

时间:2010-11-22 22:41:58

标签: php mysql mysqli

我有以下代码:

$username = 'username';
$password = 'password';
$host = 'localhost';
$db = 'dbname';
$dbh = new mysqli('p:'.$host, $username, $password, $db) 
    or die('no connection to server');

但是我收到以下错误

PHP Warning:  mysqli::mysqli() [<a href='function.mysqli-mysqli'>function.mysqli-mysqli</a>]: (HY000/2005): Unknown MySQL server host 'p:localhost' (1) in /var/www/vhosts/politiker.lu/httpdocs/includes/sql.php on line 8

这引起了我的兴趣,因为完全相同的代码适用于我的开发环境。既然我想在我的生产服务器上设置它,它就不起作用了。有什么想法吗?

注意:我对服务器不太满意,请原谅我,如果错误应该是微不足道的。

编辑1

以下是版本: 开发PHP(5.3.3-1ubuntu9.1)+ MySQL(5.1.49-1ubuntu8.1)
制作PHP(5.2.4-2ubuntu5.12)+ MySQL(5.0.51a)

4 个答案:

答案 0 :(得分:6)

像这样取出p:

$dbh = new mysqli($host, $username, $password, $db) 
    or die('no connection to server');

答案 1 :(得分:3)

只是添加这个,因为我不认为它很清楚,但问题肯定是你的PHP生产版本。直到5.3之后才添加mysqli扩展的持久连接,因为它们之前引起了头痛。

有些主机可能安装了不同版本的PHP ......我今天意识到我可以让HostGator使用PHP 5.3!我只需要添加到我的.htaccess文件中:

Action application/x-hg-php53 /cgi-sys/php53
AddType application/x-hg-php53 .php

答案 2 :(得分:2)

我想你错过了这台服务器中的mysqli包。试试:

sudo apt-get install php5-mysqli 

如果apt-get说它已经安装了尝试ping localhost,如果不解析编辑/ etc / hosts并检查localhost指向127.0.0.1的行 应该在那里,如果没有,你的服务器可怕的配置!

做一个

ifconfig 

并检查你是否得到这样的输出......

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0

答案 3 :(得分:0)

您需要指定MySQL服务器的实际位置。对于开发,它是localhost(最有可能),只是如何配置它。但对于生产服务器来说,它将是另一回事。我怀疑它应该是localhost