Php `虽然没有显示回声

Php `虽然没有显示回声,php,pdo,Php,Pdo,我的回声出现问题了。我认为while有问题,但是这个表在mysql中,所以应该可以正常工作。这是我的密码 <?php $sql = $db->prepare('SELECT topic_id, topic_subject FROM topics WHERE topics.topic_id = :topid'); $sql->bindPara

我的回声出现问题了。我认为
while
有问题,但是这个表在mysql中,所以应该可以正常工作。这是我的密码

    <?php


$sql = $db->prepare('SELECT
            topic_id,
            topic_subject
        FROM
            topics
        WHERE
            topics.topic_id = :topid');
$sql->bindParam(':topid', $_GET['id'], PDO::PARAM_INT); 
$sql->execute();
$result = $sql->rowCount();



        if($result === FALSE){
            echo 'The topic could not be displayed, please try again later.';
        }
        elseif(count($result) === 0){
            echo 'This topic doesn&prime;t exist.';
        }
    else
        {
        while($row = $sql->fetch())
        {
            //display post data
            echo '<table class="topic" border="1">
                    <tr>
                        <th colspan="2">' . $row['topic_subject'] . '</th>
                    </tr>'; ?>

应该显示
while
,因为该主题存在于mysql中。当我使用
var_dump($sql->errorInfo())时;
它说的是
数组(3){[0]=>string(5)“00000”[1]=>NULL[2]=>NULL}
空值是因为我在mysql中创建了主题作为测试

$result = $sql->rowCount();

elseif(count($result) === 0){
$result正在分配行计数;但是
count()
设计用于对数组中的元素进行计数。从

我认为你所需要的是:

elseif($result === 0){
我认为您的查询没有结果,但是对
count()
的调用不起作用。它正在通过该检查,并且由于没有可检索的记录,因此不会进入循环

$result正在分配行计数;但是
count()
设计用于对数组中的元素进行计数。从

我认为你所需要的是:

elseif($result === 0){
我认为您的查询没有结果,但是对
count()
的调用不起作用。它正在通过该检查,并且由于没有要检索的记录,因此它不会进入循环。

count($results)==0
没有任何意义,因为
$result
已经包含一个整数。SQL查询返回0行,但由于
count(0)
1
,脚本不知道该做什么,因为没有涵盖这种情况

只需使用
$results===0
更改
count($results)==0
,然后继续找出查询不返回预期行的原因。

count($results)==0
没有任何意义,因为
$result
已经包含一个整数。SQL查询返回0行,但由于
count(0)
1
,脚本不知道该做什么,因为没有涵盖这种情况


只需使用
$results===0
更改
count($results)===0
,然后继续找出查询没有返回预期行的原因。

那么,脚本显示了什么呢?@alessandro1997听起来很奇怪,但什么也没有显示。那么,脚本显示了什么呢?@alessandro1997听起来很奇怪,但什么也没有显示