gpt4 book ai didi

PHP - MySQL - 从 XML 加载数据

转载 作者:太空宇宙 更新时间:2023-11-03 12:22:06 25 4
gpt4 key购买 nike

我有一个非常奇怪的问题。我想从 XML 文件加载 MySQL 连接属性,但在尝试处理连接时出现此错误:

php_network_getaddresses: getaddrinfo failed (Error number: 2002)

为什么这很奇怪?因为如果我自己写下 mysql_connect() 语句,而不是从 xml 文件中写下来,它就可以工作。

XML 文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<data>
<host>"localhost"</host>
<username>"root"</username>
<password>"password"</password>
<database>"account"</database>
</data>

PHP 部分:

function connection() {
$file = 'access.xml';
if(file_exists($file)) {
$xml = simplexml_load_file($file);
$host = $xml->host;
$name = $xml->username;
$password = $xml->password;
$database = $xml->database;

$connect = mysql_connect($host,$name,$password);
//mysql_select_db($database) or die("Adatbázis csatlakozás sikertelen.");
} else {
print "XML betöltése sikertelen. - MySQL csatlakozás sikertelen."; // Error message in hungarian language
}
}

我考虑过可能是字符集导致了问题,但没有,因为我已经将 PHP 的字符集设置为 UTF-8,我的 SQL 服务器的字符集也是 UTF-8,正如您所看到的,XML 文件使用 UTF -8。所以,我真的不知道问题出在哪里。

感谢您的帮助,

汤姆科

最佳答案

我暗暗怀疑这是您 XML 中的引号。尝试:

<?xml version="1.0" encoding="UTF-8"?>
<data>
<host>localhost</host>
<username>root</username>
<password>password</password>
<database>account</database>
</data>

在您的代码中使用引号来标识字符串...但是 XML 解析器已经知道它正在处理字符串,因此它会将您提供的引号视为该文本的一部分。所以不是扩展到:

$connect = mysql_connect('localhost','account','password');

您实际上正在扩展到:

$connect = mysql_connect('"localhost"', '"account"', '"password"');

虽然 PHP 找不到名为 "localhost" 的服务器,但找到名为 localhost 的服务器应该没有问题。

关于PHP - MySQL - 从 XML 加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19435351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com