警告::mysqli :: __ construct():php_network_getaddresses:getaddrinfo 失败:提供了节点名或服务名,或者在 /Users/davidrooney/Sites/conn_test.php,第10行
警告::mysqli :: __ construct():(HY000 / 2002): php_network_getaddresses:getaddrinfo失败:nodename或servname 提供,或在/Users/davidrooney/Sites/conn_test.php中未知 第10行
连接成功
警告::mysqli :: query():无法获取 第14行的/Users/davidrooney/Sites/conn_test.php中的mysqli
你好世界
警告::mysqli :: close():无法在第18行的/Users/davidrooney/Sites/conn_test.php中获取mysqli
以下是我的conn_test.php文件:
{{1}}
列出的PHP代码能够连接到我的SQL数据库“ testdb”,但是在表“ testtable”上进行查询会引发错误。
我在该表“ first_name”中有一列,其中一个条目为“ john”。我已经验证了我的apache服务器在启用PHP7.1的情况下能否正常运行,因为我可以在单独的脚本中输出phpinfo()。 MySQL服务器(mysql5.7)也正在运行并且运行良好,因为我可以通过Sequel Pro访问它并创建数据库,表等。
我还可以从Sequel Pro中手动查询并返回'john',因此我知道查询也可以。
我刚刚开始使用PHP,但是在网上阅读了所有内容之后,这段代码看起来是正确的。
我想念什么?
答案 0 :(得分:4)
鉴于恕我直言未回答有问题的答案,我觉得我需要介入。
正如我在评论中所述,引号需要从数据库声明中删除。
$connect = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
因为它们是常量。
参考文献:
错误报告也将有所帮助:
编辑:
user3783243在评论中指出:
另外,当您使连接正常工作时,$ message将成为结果对象,您将需要获取该对象。 – user3783243
是正确的。回显查询只是结果集。您需要遍历(成功的)结果,并且有很多方法可以做到这一点。
您似乎不熟悉使用数据库。如果您仔细阅读PHP.net http://php.net/manual/en/mysqli.query.php的mysqli_query()
函数中的手册,您会发现许多示例,只要查询成功即可获取并显示查询结果。
如果看不到结果,则可能是查询失败。这是您需要在查询中使用mysqli_error($connect)
检查错误的时候。
答案 1 :(得分:-1)
尝试MySQLi面向对象
<?php
$servername = "localhost";
$username = "username";
$password = "";
$dbname = "testdb";
$connect = new mysqli($servername, $username, $password, $dbname);
if ($connect->connect_error) {
die("Connection failed: " . $connect->connect_error);
}
$sql = "SELECT first_name FROM testtable";
$result = $connect->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "Hello " . $row["first_name"];
}
}
$connect->close();
?>