【问题标题】:PHP MySQLi query returns NULL [duplicate]PHP MySQLi查询返回NULL [重复]
【发布时间】:2018-05-19 06:45:13
【问题描述】:

我试图让我的 PHP 代码连接到托管在同一台服务器上的数据库,但无论我做什么,它总是最终返回一个空集。

$servername = "localhost";
                $username = "user";
                $password = "pass";
                $dbnom = "name";

                $conn = new mysqli($servername, $username, $password, $dbnom);

                mysqli_set_charset($conn, "utf8");

                if(!$conn) {
                    die("La connexion a échoué : " . mysqli_connect_error());
                }

                $championsSQL = "SELECT pa_championId FROM participants";
                $resultSQL = mysqli_query($conn, $championsSQL);

                if(mysqli_num_rows($resultSQL) > 0) {
                    while($row = mysqli_fetch_assoc($resultSQL)) {
                        echo "Nom des champions : " . $row["pa_championId"] . "<br>";
                    }
                }
                else {
                    echo "Aucun résultat";
                }
                var_dump($resultSQL);
                mysqli_close($conn);

当我手动将 MySQL 请求“SELECT pa_championId FROM参与者”输入到服务器上的 mysql 命令行时,它会起作用。 最后的 var_dump 总是返回 NULL。 PHP 来自本网站的“使用 MySQLi 选择数据”部分:https://www.w3schools.com/php/php_mysql_select.asp

我知道这个问题之前已经发布过很多次了,但我发现没有一个答案适合我的确切情况。

日志:https://pastebin.com/M2GCQe4D

【问题讨论】:

  • 您正在混合使用 OOP 和过程 mysqli 方法
  • @u_mulder 没关系
  • 我刚刚测试了上面的内容,它完美无瑕。检查您的服务器日志(正如 Fred-ii- 指出的那样,添加一些错误日志),看看是否还有其他事情发生。这只是“无法复制”的一个实例。
  • 想知道我们要等多久才能看到this............ 有什么消息。

标签: php mysql database mysqli


【解决方案1】:

我最好的猜测是连接失败,但你的$conn 不是空的,所以它永远不会进入这种情况:

if(!$conn) {
     die("La connexion a échoué : " . mysqli_connect_error());
}

您应该尝试使用它来查看它是否返回任何错误

if ($conn->connect_error) {
    die("La connexion a échoué : " . $conn->connect_error);
}

【讨论】:

  • 他们现在不就是这样吗?似乎是 4 个季度兑 1 美元
  • @Fred-ii- - 实际上,如果连接失败,new mysqli() 仍会返回一个 mysqli 对象,因此仅测试 if (!$conn)(就像 OP 当前正在做的那样)是不够的。跨度>
  • @MagnusEriksson 如果它不能解决问题,我看不出这个答案如何值得赞成。如果连接失败,OP 会看到某种类型的错误,但也许我现在太沉迷了,没有注意到差异。
  • @Fred-ii- 我没这么说。我只是说为什么这个答案与 OP 目前正在做的不同(所以实际上并不是 4 个季度兑 1 美元)。 :-)
  • 我的凭据确实是错误的,很抱歉浪费了你们的时间......
猜你喜欢
  • 1970-01-01
  • 2014-01-13
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多