php - 警告:mysqli::query():无法获取 mysqli - PHP7.1 和 MySQL5.7

标签 php mysql macos apache mysqli

<分区>

Warning: mysqli::__construct(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known in /Users/davidrooney/Sites/conn_test.php on line 10

Warning: mysqli::__construct(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known in /Users/davidrooney/Sites/conn_test.php on line 10

connection successful

Warning: mysqli::query(): Couldn't fetch mysqli in /Users/davidrooney/Sites/conn_test.php on line 14

hello world

Warning: mysqli::close(): Couldn't fetch mysqli in /Users/davidrooney/Sites/conn_test.php on line 18

以下是我的conn_test.php文件:

<?php

define('DB_NAME','testdb');
define('DB_USER','root');
define('DB_PASSWORD','password');
define('DB_HOST','localhost');

//Connecting to sql db
$connect = new mysqli('DB_HOST','DB_USER','DB_PASSWORD','DB_NAME');
if (!$connect) { die ('could not connect'); }
echo 'connection successful'; 

$message = $connect->query("SELECT first_name FROM testtable");

echo "$message <br/>";
echo "hello world";
$connect->close();
?>

列出的 PHP 代码能够连接到我的 SQL 数据库“testdb”,但对表“testtable”进行查询会抛出错误。

我在该表“first_name”中有一列,其中一个条目为“john”。我已验证我的 apache 服务器在启用 PHP7.1 的情况下运行良好,因为我可以在单独的脚本中输出 phpinfo()。并且 MySQL 服务器 (mysql5.7) 也在运行并且健康,因为我可以通过 Sequel Pro 访问它并创建数据库、表等。

我也可以从 Sequel Pro 手动查询并返回“john”,所以我知道该查询也有效。

我刚开始使用 PHP,但在网上阅读了所有内容后,这段代码看起来是正确的。

我错过了什么?

最佳答案

考虑到恕我直言没有回答相关问题的答案,我觉得我需要介入这里。

正如我在评论中所述,引号需要从数据库声明中删除。

$connect = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

因为它们是常量。

引用资料:

错误报告也有帮助:

编辑:

作为user3783243在评论中指出:

Additionally when you get the connection working $message will be a result object, you will need to fetch that. – user3783243

是对的。回显查询只是结果集。您需要遍历(成功的)结果,有很多方法可以做到这一点。

您似乎不熟悉使用数据库。如果您查看 PHP.net 上 mysqli_query() 函数内的手册 http://php.net/manual/en/mysqli.query.php ,如果查询成功,您会发现许多示例来获取和显示查询结果。

如果您没有看到结果,那么它(查询)可能失败了。这是您需要在查询中使用 mysqli_error($connect) 检查错误的时候。

关于php - 警告:mysqli::query():无法获取 mysqli - PHP7.1 和 MySQL5.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51642436/

相关文章:

android - I/O 错误连接被拒绝 android studio

c# - C#的开发环境

macos - vscode 设置终端 gopath 以匹配 go.gopath

php - 如何在php中使用class(oops)在php中创建mysql表?

mysql删除和更新使用带有多个项目提交按钮的复选框

php - SQL 搜索 George 与 Georges

mysql - 检索具有多个关联条目的行

php - MySQL——如何做得更好?

javascript - 将 PHP 变量传递给 Javascript 函数参数

php - 如何获取mysql中具有相同值的记录数最多的值