我有以下相对简单的数据库连接脚本:
以下脚本只是创建一个通用接口:
<?php
//Filename: IConnectInfo.php
interface IConnectInfo
{
const HOST ="localhost";
const UNAME ="root";
const PW ="";
const DBNAME = "login";
public static function doConnect();
}
?>
下面的脚本,它使用了上面的界面:
<?php
//FILENAME :: UniversalConnect.php
ini_set("display_errors","1");
ERROR_REPORTING( E_ALL | E_STRICT );
include_once('IConnectInfo.php');
class UniversalConnect implements IConnectInfo
{
private static $server=IConnectInfo::HOST;
private static $currentDB= IConnectInfo::DBNAME;
private static $user= IConnectInfo::UNAME;
private static $pass= IConnectInfo::PW;
private static $hookup;
public static function doConnect()
{
self::$hookup=mysqli_connect(self::$server, self::$user, self::$pass, self::$currentDB);
if(self::$hookup)
{
echo "Successful connection to MySQL:<br/>";
}
elseif (mysqli_connect_error(self::$hookup))
{
echo('Here is why it failed: ' . mysqli_connect_error());
}
return self::$hookup;
}
}
?>
现在到这里,一切都整洁干净,工作正常:
我测试了上面两个文件正在工作,通过在上面的文件末尾添加以下2行。
$instance = new UniversalConnect();
$instance::doConnect();
我收到一条消息“成功连接到MySQL:”,完美!!!
现在出现了第三个文件:(我已经注释掉了一些简单的代码):
<?php
//FILENAME DataEntry.php
require_once('tablework/UniversalConnect.php');
class DataEntry
{
//Variable for MySql connection
private $hookup;
private $sql;
private $tableMaster;
//Field Variables
private $name;
private $email;
private $lang;
public function __construct()
{
//Get table name and make connection
$this->tableMaster="basics";
if($this->hookup=UniversalConnect::doConnect()){
echo "<b>connected</b>";
}else{
echo "<b>Not connected</b>";
}
}
}
$instance = new DataEntry();
?>
现在当我运行上面的文件时,以某种方式与数据库的连接失败了!即使在UniversalConnect.php
中连接成功!
我得到的错误是
这就是失败的原因:php_network_getaddresses:getaddrinfo失败: 没有这样的主人是已知的。没有连接。
我真的不明白为什么当在UniversalConnect.php
中建立连接并且同一连接被返回到dataEntry.php
时,连接是否失败! 。
编辑::错误列表:
警告:mysqli_connect():php_network_getaddresses:getaddrinfo 失败:没有这样的主人知道。在 第19行的C:\ xampp \ htdocs \ Login2.0 \ tablework \ UniversalConnect.php
警告:mysqli_connect():( HY000 / 2002):php_network_getaddresses: getaddrinfo失败:没有这样的主机。在 第19行的C:\ xampp \ htdocs \ Login2.0 \ tablework \ UniversalConnect.php 这就是它失败的原因:php_network_getaddresses:getaddrinfo失败: 没有这样的主人是已知的。警告:mysqli_connect(): php_network_getaddresses:getaddrinfo失败:没有这样的主机。 第19行的C:\ xampp \ htdocs \ Login2.0 \ tablework \ UniversalConnect.php
警告:mysqli_connect():( HY000 / 2002):php_network_getaddresses: getaddrinfo失败:没有这样的主机。在 第19行的C:\ xampp \ htdocs \ Login2.0 \ tablework \ UniversalConnect.php 这就是它失败的原因:php_network_getaddresses:getaddrinfo失败: 没有这样的主人是已知的。没有连接。
我将不胜感激任何帮助。
谢谢。
Tenali。