【问题标题】:echoing the error null when there is no matched data in database当数据库中没有匹配的数据时回显错误 null
【发布时间】:2016-11-01 03:41:16
【问题描述】:

我创建了一个简单的表单,它搜索输入的用户名与数据库中的一个匹配,并显示其名字和姓氏。我在显示错误时遇到问题。当输入的用户名与数据库中的用户名不匹配时,它应该显示 null 或什么都不显示。我尝试在 else 语句中回显 null,但它仍然显示错误消息。

<?php

$db = new PDO('mysql:host=127.0.0.1;dbname=sample;charset=utf8', 'root', '');

if(isset($_POST['search'])) {
    $search = $_POST['search'];

    $query = $db->prepare("SELECT * FROM search WHERE username=:username");
    $query->execute(['username' => $search]);

    $row = $query->fetch(PDO::FETCH_OBJ);

    if(count($row)) {
        echo $row->firstname . ' ' . $row->lastname;
    } else {
        echo null;
    }
}


这不应该显示:

【问题讨论】:

  • echo $row-&gt;firstname . ' ' . $row-&gt;lastname; 是第 14 行吗?您是否尝试过设置fetch
  • 已经解决了这个问题...
  • 如果您认为这可能对其他人有用,您可以为自己的问题添加答案。同时,我会尝试在问题中添加可重现的细节。

标签: php mysql error-handling


【解决方案1】:

你应该做类似的事情

 if(count($row) > 0) {
    echo $row->firstname . ' ' . $row->lastname;
} else {
    echo null;
}

【讨论】:

  • 首先检查 Object $row 是否为空。做 print_r($row);
猜你喜欢
  • 2021-02-28
  • 1970-01-01
  • 1970-01-01
  • 2018-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多