警告:mysql_connect(): php_network_getaddresses: getaddrinfo failed: No such host is known
Posted
技术标签:
【中文标题】警告:mysql_connect(): php_network_getaddresses: getaddrinfo failed: No such host is known【英文标题】:Warning: mysql_connect(): php_network_getaddresses: getaddrinfo failed: No such host is known 【发布时间】:2015-09-25 23:23:51 【问题描述】:我正在尝试使用 php 连接到 localhost 数据库。
但是显示出来了
警告:mysql_connect():php_network_getaddresses:getaddrinfo 失败:不知道这样的主机。在第 7 行的 C:\xampp2\htdocs\wikifiesto\wf-insertcase.php 中
警告:mysql_connect():php_network_getaddresses:getaddrinfo 失败:不知道这样的主机。在第 7 行的 C:\xampp2\htdocs\wikifiesto\wf-insertcase.php 连接数据库时出错
server、user、pass的结构是localhost、pma、''
这是我的代码,名为“wf-insertcase.php”:
<?php
define('dbuser', 'pma');
define('dbpass', '');
define('dbserver', 'localhost');
define('dbname', 'wikifiesto');
$conn = mysql_connect(dbuser, dbpass, dbserver, dbname);
if (!$conn)
die('error connecting to database');
echo 'you have created case';
?>
【问题讨论】:
【参考方案1】:您的函数中有错误的参数顺序。数据库服务器必须是第一个参数。
$conn = mysql_connect(dbserver, dbuser, dbpass);
此处不允许使用数据库名称,请使用 mysql_select_db(dbname)
。
所有 mysql_* 都已弃用,请参阅 http://php.net/manual/en/function.mysql-connect.php 和 MySQLi
扩展。
$conn = mysqli_connect(dbserver, dbuser, dbpass, dbname);
^
【讨论】:
【参考方案2】:由于未正确设置“主机”而出现“未知主机”警告。
请替换以下代码行
$conn = mysql_connect(dbuser, dbpass, dbserver, dbname);
if (!$conn)
die('error connecting to database');
与
$conn = mysql_connect(dbserver,dbuser,dbpass);
if (!$conn)
die('error connecting to database');
else
mysql_select_db(dbname, $conn);
【讨论】:
【参考方案3】:它很快就会被破坏,因为这些函数是 deprecated 并且很快就会从 PHP 中删除。
如果您仍想使用它们,请使用mysql_connect的正确顺序
$mysql_handler = mysql_connect($host, $user, $pass);
mysql_select_db($database_name, $mysql_handler);
【讨论】:
【参考方案4】:在Mysql
<?php
$dbuser = 'pma';
$dbpass = '';
$dbserver = 'localhost';
$dbname = 'wikifiesto';
$conn = mysql_connect($dbserver, $dbuser, $dbpass);//Connecting to localhost
$db = mysql_select_db($dbname, $conn);//connecting database
在mysqli
$conn = mysqli_connect($dbserver,$dbuser,$dbpass,$dbname)//MySQLi Procedural
【讨论】:
【参考方案5】:使用 mysqli 代替 mysql 已弃用
<?php
define('DBUSER', 'pma');
define('DBPASS', '');
define('DBSERVER', 'localhost');
define('DBNAME', 'wikifiesto');
$conn = new mysqli(DBSERVER, DBUSER, DBPASS, DBNAME);
if (!$conn)
die('error connecting to database');
echo 'you have created case';
?>
您有一些以下非标准的事情/错误
-
常量名称必须大写
用mysql代替mysqli
参数的顺序必须为
主持人 数据库用户 db 用户通行证 数据库名称【讨论】:
以上是关于警告:mysql_connect(): php_network_getaddresses: getaddrinfo failed: No such host is known的主要内容,如果未能解决你的问题,请参考以下文章
警告:mysql_connect():用户'root'@'localhost'的访问被拒绝(使用密码:NO)[重复]
警告:mysql_connect(): 无法通过套接字'/tmp/mysql.sock' (2) 连接到本地 MySQL 服务器
警告:mysql_connect(): php_network_getaddresses: getaddrinfo failed: No such host is known
警告:mysql_connect(): [2002] 没有这样的文件或目录(试图通过 unix:///tmp/mysql.sock 连接)
解决Warning: mysql_connect(): Headers and client library minor version mismatch. 警告