php - 使用搜索词 PHP 从 MySQL 中绘图。我不知道出了什么问题

标签 php mysql

我遇到了一点问题。我正在尝试使用 PHP 和搜索词从 MySQL 中提取数据。但是我似乎无法弄清楚为什么我的代码返回错误。

我不断收到的错误是:

Trying to get property of non-object. Line 40

据我所知,这意味着我正在调用一个变量,该变量要么 A. 必须不存在,要么 B. 没有值。我可能犯了一些愚蠢的错误,但有人知道为什么我的代码不起作用吗?

<!DOCTYPE html>
    <html lang="en">
        <?php
            $boxnumber = $_POST['boxnumber'];
            if (is_numeric($boxnumber)) {

            }
            else {
            echo 'Please only input numbers';
            }

            $servername = "localhost";
            $username = "root";
            $password = "";
            $dbname = "testing";

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

            if ($conn->connect_error) {
                die("Connection Failed: " . $conn->connect_error);
            }

            $query_boxinfo = 'SELECT box_number, client_number, client_code, tax_year, status FROM testing_table WHERE box_number=$boxnumber';
            $boxinfo_result = $conn->query($query_boxinfo);
            ?>
        <head>
            <meta charset="UTF-8">
            <title>Box <?php echo $boxnumber; ?> Details</title>
        </head>
        <body>
        <table>
            <tr>
                <td>Box Number</td>
                <td>Client Code</td>
                <td>Client Name</td>
                <td>Tax Year</td>
                <td>Status</td>
            </tr>
            <?php 
                if ($boxinfo_result->num_rows > 0) {
                    while  ($row = $boxinfo_result->fetch_assoc()) {
                        echo '<tr>';
                            echo '<td>';
                                echo $boxnumber;
                            echo '</td>';
                            echo '<td>';
                                echo $row["client_code"];
                            echo '</td>';
                            echo '<td>';
                                echo $row["client_name"];
                            echo '</td>';
                            echo '<td>';
                                echo $row["tax_year"];
                            echo '</td>';
                            echo '<td>';
                                echo $row["status"];
                            echo '</td>';
                         echo '</tr>';
                     }
                 }
                 else {
                     echo '<span style="color:red">Unknown error. No Results found. Please contact your System Administrator or Workplace Head.</span>';
                 }
             ?>
         </table>
     </body>
 </html>

最佳答案

Erik 说的是对的,我们不能在单引号之间使用变量。 查询语句需要用双引号引起来。

$boxinfo_result 此处为 null,因此您会收到该错误。

抱歉,稍后才看到您的评论,我无法发表评论。 这将解决 $boxinfo_result->fetch_array(MYSQLI_ASSOC) 而不是 $boxinfo_result->fetch_assoc()

关于php - 使用搜索词 PHP 从 MySQL 中绘图。我不知道出了什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38196510/

相关文章:

php - Zend Framework 3 Xampp 数据库连接

返回空结果集的 MySql 查询

php - CodeIgniter 即时更改默认数据库名称

mysql - 是否可以创建 "foreign key pair"? - SQL

php - 禁用所有 Apache 添加的 header

php - 在 sphinx 中添加 where 条件以及如何删除 sphinx 中的 setlimit

MySQL - LEFT JOIN 基于日期时间列的最新记录

MySQL 关系分区查询性能

php - 评论框 PHP MySQL

javascript - js + lodash js debound + php : debound function lodash is not working