【问题标题】:php_network_getaddresses: getaddrinfo failed:php_network_getaddresses:getaddrinfo 失败:
【发布时间】:2013-12-02 21:29:53
【问题描述】:

我想连接sql数据库。 我究竟做错了什么?请帮忙

constants.php

<php
// Database Constants
define("DB_SERVER", "localhost");
define("DB_USER", "root");
define("DB_PASS", "1234");
define("DB_NAME", "widget_corp");
?>

connection.php

<?php
require("constants.php");
//1. Create a database connection 
$connection = mysql_connect('DB_SERVER','DB_USER','DB_PASS');
if(!$connection) {
    die("Database connection failed: " . mysql_error());
}

//2. Select a database to use
$db_select = mysql_select_db('DB_NAME', $connection);
if(!$db_select) {
    die("Database selection failed: " . mysql_error());
}

?>

【问题讨论】:

  • 这真的是&lt;php 还是错字?需要&lt;?php
  • 请添加完整的错误信息。

标签: php mysql


【解决方案1】:

首先,您的constants.php 文件似乎在开始PHP 标记中有错字。您应该按如下方式更新文件:

<?php
// Database Constants
define("DB_SERVER", "localhost");
define("DB_USER", "root");
define("DB_PASS", "1234");
define("DB_NAME", "widget_corp");
?>

其次,常量名不是字符串,它们是常量。您的 mysql_connect() 函数应如下所示:

$connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS);

同样,mysql_select_db() 应该是:

$db_select = mysql_select_db(DB_NAME, $connection);

您应该被告知,mysql_*() 系列函数现在已被弃用。您应该考虑使用 MySQLiPDO 以确保安全性和使用寿命。

【讨论】:

    【解决方案2】:

    你已经引用了你的常量:

    $connection = mysql_connect('DB_SERVER','DB_USER','DB_PASS');
                                ^--       ^-^--- etc...
    

    一旦被引用,它们就不再是常量——它们是恰好具有共享常量名称的内容的字符串。因此,您实际上是在尝试连接到名为 DB_SERVER 的服务器,而不是名为 localhost 的服务器。不带引号试试:

    $connection = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
    

    【讨论】:

      【解决方案3】:

      constants.php 第 1 行。

      <?php //And not <php, this isn't HTML.
      

      【讨论】:

        【解决方案4】:

        @AbraCadaver 是正确的,constants.php 文件应该以&lt;?php 而不是&lt;php 开头。

        您还需要在使用常量时删除单引号。

        行:

        $connection = mysql_connect('DB_SERVER','DB_USER','DB_PASS');
        
        $db_select = mysql_select_db('DB_NAME', $connection);
        

        应该是:

        $connection = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
        
        $db_select = mysql_select_db(DB_NAME, $connection);
        

        【讨论】:

          猜你喜欢
          • 2018-02-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多