【问题标题】:A Better Way for No Results Returned?没有结果返回的更好方法?
【发布时间】:2023-03-15 14:55:02
【问题描述】:

我有一个非常简单的搜索页面,用于查询数据库中的一个表。我有查询和获取工作。但是,如果它没有找到与用户输入的术语匹配的任何内容,那么我需要它说“No Rows Returned”。

这是我的 PHP 代码:

<?php

include('./includes/dbConnection.php');

$result = null;


if (isset($_GET['submit'])) {

// connect to database
$conn = dbConnect('localhost', 'db_admin', 'kfor.com', 'receiving');

// query the database
$stmt = $conn->stmt_init();
$searchTerm = "SELECT * FROM inventory WHERE pallet = {$_GET['pallet_id']}";
$result = $conn->query($searchTerm);
}
?>

这是显示结果和错误的 PHP:

 <?php
        if ($result != null) {
            if (!empty($result)) {
                while ($row = $result->fetch_assoc()) {
                    ?>

                    <tr>
                        <td><?php echo $row['pallet']; ?></td>
                        <td><?php echo $row['serial']; ?></td>
                    </tr>
                <?php
                }
            }
        } else {
            echo "No Results";
        }
        ?>

有没有更好的方法来显示“未返回结果”?现在它只是在刷新时显示该错误,因为 $result 确实等于 null。

感谢您的帮助!

【问题讨论】:

  • 你容易受到sql injection attacks的攻击
  • 您应该使用 prepared statementbind 参数,而不是直接将 GET 中的值包含到您的查询中

标签: php mysql


【解决方案1】:

删除$result = null;,不需要。您可以查看num_rows 是否返回了您的查询。

<?php

include('./includes/dbConnection.php');


if (isset($_GET['submit'])) {

  // connect to database
  $conn = dbConnect('localhost', 'db_admin', 'kfor.com', 'receiving');

  $_GET['pallet_id'] = addslashes($_GET['pallet_id']);
  // query the database
  $stmt = $conn->stmt_init();
  $searchTerm = "SELECT * FROM inventory WHERE pallet = {$_GET['pallet_id']}";
  $result = $conn->query($searchTerm);

  if ($result->num_rows > 0) {
      while ($row = $result->fetch_assoc()) {
          ?>

          <tr>
              <td><?php echo $row['pallet']; ?></td>
              <td><?php echo $row['serial']; ?></td>
          </tr>
      <?php
      }
  } else {
      echo "No Results Returned";
  }
}
?>

【讨论】:

  • 似乎,$result 不是 mysqli 结果。你能分享你的 dbConnection.php 吗?
  • 仍然得到一个未定义的变量:结果错误。 :(
  • 啊抱歉,再试一次!
  • 注意:if ($result-&gt;num_rows &gt; 0) { 检查应该在 if (isset($_GET['submit'])) { 内,或者,您的查询实际上并未执行,并且您正在检查实际上未定义的 num_rows。
猜你喜欢
  • 2018-07-02
  • 1970-01-01
  • 2018-06-02
  • 1970-01-01
  • 2011-05-11
  • 2015-06-22
  • 2019-07-16
  • 1970-01-01
  • 2014-07-04
相关资源
最近更新 更多