【问题标题】:MYSQL select query does not give any output [closed]MYSQL选择查询没有给出任何输出[关闭]
【发布时间】:2022-01-04 13:19:31
【问题描述】:

我的 SQL 查询不工作。下面是我的代码,请注意,在该表中查询工作正常并提供输出。但是在 PHP 中使用 mysqli_num_rows()mysqli_fetch_assoc()mysqli_fetch_array() 对我来说都不起作用。 我的数据库连接是:

$conn = mysqli_connect($servername, $username, $password, $db);

注意:我的数据库连接很好。

$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
$query = mysqli_query($conn, "SELECT * FROM `admin` WHERE `username`='$username'");

此查询在 PHPMyAdmin 中返回 true,在 PHP 中使用上述函数返回 false。谁能回答我是不是搞错了?

我尝试通过以下方法执行该查询:

$row = mysqli_fetch_assoc(); // Results No Data
$data = mysqli_fetch_array($query); // Results No Data
$num = mysqli_num_rows($query); // Results 0 Data

【问题讨论】:

  • 您好,您能告诉我们您是如何创建数据库连接以及如何执行此查询的吗?
  • $row = mysqli_fetch_assoc($query);print_r($row);
  • 你能检查一下 POST var_dump($_POST); 收到了哪些数据
  • 它给了我 POST 数据。 array(3) { ["username"]=> string(8) "username" ["password"]=> string(8) "password" ["submit"]=> string(6) "Submit" }
  • 您尝试过什么来解决问题?你被困在哪里了?另外,请注意,您的查询对 SQL 注入开放 - 请查看准备好的语句

标签: php mysql sql mysqli


【解决方案1】:

您可以在使用前执行查询:

<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$conn = mysqli_connect("localhost", "my_user", "my_password", "world");

$query = "SELECT Name, CountryCode FROM City ORDER BY ID DESC";

$result = mysqli_query($conn , $query);

/* fetch associative array */
while ($row = mysqli_fetch_assoc($result)) {
  printf("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}

【讨论】:

  • 我只做了这件事。但随后也没有任何结果。
  • 你能转储 $result 吗?
  • 它给了我这个:object(mysqli_result)#2 (5) { ["current_field"]=&gt; int(0) ["field_count"]=&gt; int(7) ["lengths"]=&gt; NULL ["num_rows"]=&gt; int(1) ["type"]=&gt; int(0) }
  • 您可以转储您的查询或将其写入不带变量的测试并给我们结果吗?
  • 那么它也会导致同样的无结果。
【解决方案2】:

您可以运行mysqli_query 函数以从数据库接收结果:

$username = mysqli_real_escape_string($conn, $_POST['username']);

$query = "SELECT * FROM `admin` WHERE `username`='$username'";

$result = mysqli_query($mysqli, $query);

$row = mysqli_fetch_assoc($result);

print_r($row);

PHP MySQL sandbox here

【讨论】:

  • 我已经完成了。很抱歉,我之前没有将其包含在我的代码中。
猜你喜欢
  • 2012-09-03
  • 2020-09-15
  • 2021-12-24
  • 2013-11-24
  • 2018-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
相关资源
最近更新 更多