【问题标题】:Error messages when connecting to database连接数据库时的错误消息
【发布时间】:2013-03-05 09:57:16
【问题描述】:

我在连接数据库时遇到问题

这是我正在使用的代码

$con = mysql_connect('host', 'user', 'pass');
mysql_select_db('database_name', $con);

这是我得到的结果

警告:mysql_connect() [function.mysql-connect]:在“读取初始通信数据包”时丢失与 MySQL 服务器的连接,系统错误:/home/heartbeat_db/heartbeatsmart.com/php/config/dbconnect.php 中的 111在第 2 行

警告:mysql_select_db() 期望参数 2 是资源,布尔值在第 3 行的 /home/heartbeat_db/heartbeatsmart.com/php/config/dbconnect.php 中给出

警告:mysql_connect() [function.mysql-connect]:在“读取初始通信数据包”时丢失与 MySQL 服务器的连接,系统错误:/home/heartbeat_db/heartbeatsmart.com/php/config/dbconnect.php 中的 111在第 2 行

警告:mysql_select_db() 期望参数 2 是资源,布尔值在第 3 行的 /home/heartbeat_db/heartbeatsmart.com/php/config/dbconnect.php 中给出

【问题讨论】:

标签: php mysql


【解决方案1】:

尝试使用此代码

$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');

if (!$link) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Success... ' . mysqli_get_host_info($link) . "\n";

mysqli_close($link);

来源:http://www.php.net/manual/en/mysqli.construct.php

【讨论】:

    【解决方案2】:
    <?php
    $mysqli = new mysqli("localhost", "user", "password", "database");
    if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " .      $mysqli->connect_error;
     }
    echo $mysqli->host_info . "\n";
    
    $mysqli = new mysqli("127.0.0.1", "user", "password", "database", 3306);
    if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " .      $mysqli->connect_error;
    }
    
    echo $mysqli->host_info . "\n";
    ?>
    

    【讨论】:

      【解决方案3】:

      最好使用 PDO 或 Mysqli。我更喜欢 PDO,因为它还支持 mysql 以外的其他数据库,因此如果需要,您可以更轻松地迁移。

      您可以通过以下方式轻松建立连接

      $db = new PDO('mysql:host=localhost;dbname=<SOMEDB>', '<USERNAME>', 'PASSWORD');
      

      欲了解更多信息:http://php.net/manual/en/book.pdo.php

      如果你想使用mysqli,请使用:

      $mysqli = new mysqli("localhost", "user", "password", "database");
      

      【讨论】:

        【解决方案4】:

        尝试使用此代码

        $con=mysql_connect("host","user","pass");
        mysql_selectdb("数据库名称",$con);

        【讨论】:

        • 这与提供的示例源有何不同。
        • @Mathieu mysql_selectdb 和 mysql_select_db 不就是他们的区别吗?
        • 那如何回答这个问题?
        【解决方案5】:
        $con = mysql_connect('host', 'user', 'password');
        if (!$con) {
            die('Not connected : ' . mysql_error());
        }
        
        $db = mysql_select_db('database_name', $con);
        if (!$db) {
            die ('Can\'t use database_name : ' . mysql_error());
        }
        

        【讨论】:

          猜你喜欢
          • 2013-09-04
          • 2020-07-13
          • 2017-08-20
          • 2014-01-17
          • 2019-10-05
          • 2012-06-16
          • 2023-04-07
          • 1970-01-01
          • 2011-09-01
          相关资源
          最近更新 更多