php - 即使数据库中没有数据也不会显示错误消息

标签 php mysql pdo

引用这个主题:Display error message if value not found mysql ,

我试图了解实现它的正确方法是什么,我当前的代码显示的是数据库查询的结果,但是当我输入一些不在数据库中的值时,它只是不显示错误消息或任何 php 编码错误.

这是我的 PHP 代码:

error_reporting(E_ALL); ini_set('display_errors', 1);
require_once 'dbconnect.php';

$name = $_POST['name'];

try {
    $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = "SELECT *
              FROM customer
              WHERE lname  LIKE :name OR
                    fname LIKE :name OR
                    number LIKE :name";

$q = $conn->prepare($sql);
    $q->execute(array('name' => $name));
    $q->setFetchMode(PDO::FETCH_ASSOC);

} catch (PDOException $pe) {
    die("Could not connect to the database $dbname :" . $pe->getMessage());
}

这是我的 html View :

            <tbody>
            <?php
            $cs = $q->fetchAll();
            if ( $cs === FALSE ) {
                 echo "The search of $name return no result";
            } else {
            foreach($cs as $r): ?>
            <tr>
                <td><a href="profile.php?name=<?php echo htmlspecialchars($r['slug']) ?>"><?php echo htmlspecialchars($r['fname']), ' ', htmlspecialchars($r['lname']) ?></a></td>
                <td><?php echo htmlspecialchars($r['number']) ?></td>
                <td><a href="profile.php?name=<?php echo htmlspecialchars($r['slug']) ?>">View Profile</a></td>
            </tr>
            <?php endforeach;
            } ?>
        </tbody> 

请指教我哪里做错了?

最佳答案

从技术上讲,查询本身没有失败,所以 fetchAll() 不会返回 false。当您运行未返回任何结果的查询时,它将执行的操作是返回一个空数组。

在这种情况下,您可以将 if 语句更改为:if ($cs === false || empty($cs)) {。或者,您可以使用 if (!$cs) { 允许 PHP 解释虚假值,如空数组。

来源:PDOStatement::fetchAll()

关于php - 即使数据库中没有数据也不会显示错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25710406/

相关文章:

PHP 获取上一个链接 ID

php - Mysql 中的分组/连接列

数据库中的 PHP 计时器

php - 基数违规 : 1241 Operand should contain 1 column(s) PDO

php - PDO 事务不捕获异常

php - PDO 整数在 INSERT 语句上转换整数

php - 在非对象上调用成员函数 fetch_assoc()

php - 将单词拆分为 span 并在 div 中对齐

php - 在 php 中创建注册表

PHP可以连接数据库但无法查询任何sql