Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 执行rowCount和第二个foreach循环时出现两个PDO错误_Php_Mysql_Pdo - Fatal编程技术网

Php 执行rowCount和第二个foreach循环时出现两个PDO错误

Php 执行rowCount和第二个foreach循环时出现两个PDO错误,php,mysql,pdo,Php,Mysql,Pdo,我已经为此挣扎了几个小时了。谁能指出我哪里出了问题 我得到的第一个错误是: Fatal error: Call to undefined method PDO::rowCount() in pm_wall.php on line 8 Call Stack: 0.0000 643680 1. {main}() index.php:0 0.0015 662904 2. include('pm_wall.php') index.php:117 我得到的第二个错误是: Warning: Invalid

我已经为此挣扎了几个小时了。谁能指出我哪里出了问题

我得到的第一个错误是:

Fatal error: Call to undefined method PDO::rowCount() in
pm_wall.php on line 8
Call Stack: 0.0000 643680 1. {main}()
index.php:0 0.0015 662904 2.
include('pm_wall.php')
index.php:117
我得到的第二个错误是:

Warning: Invalid argument supplied for foreach() in pm_wall.php on line 19

Call Stack:
    0.0000     643296   1. {main}() index.php:0
    0.0015     649864   2. include(index.php:117
我如何着手解决这个问题?下面是我的代码:

$sql = "SELECT * from pm_msg";
$result = $pdo->query($sql);
if($pdo->rowCount() > 0 && !empty($result)) // first error occurs here
{
    foreach ($result as $row) 
    {
        $user_id = $row['user_id'];
        echo '<div id="content">
                    <div class="stbody">
                    <div class="stimg">';

        // set profile picture  

        $sql = "SELECT img FROM pm_user WHERE id=$user_id";
        $result = $pdo->query($sql);
        foreach ($result as $row) // second error occurs here
        {
            echo $row['img'];
        }

        echo '<div id="stexpandbox"><div></div>';       
        echo '</div></div></div></div>';
    }
}
else
    {
        echo 'Wanna be starting soemthing?';
    }
$sql=“从pm\u msg中选择*”;
$result=$pdo->query($sql);
如果($pdo->rowCount()>0&&!empty($result))//第一个错误发生在这里
{
foreach($结果为$行)
{
$user_id=$row['user_id'];
回声'
';
//设置个人资料图片
$sql=“从pm\U用户中选择img,其中id=$user\U id”;
$result=$pdo->query($sql);
foreach($result as$row)//此处出现第二个错误
{
echo$row['img'];
}
回声';
回声';
}
}
其他的
{
echo“想开始做某事吗?”;
}
rowCount()必须在PDO语句上调用,而不是在PDO实例上调用


$result->rowCount();阅读错误可能会有帮助…

类似的情况可能会:

$sql = "SELECT * from pm_msg";
$result = $pdo->query($sql);
if($result->rowCount() > 0 && !empty($result)) // first error occurs here
{
    while( $row = $result->fetch(PDO::FETCH_ASSOC) ) 


花一点时间(一两天)阅读PDO及其用法。

在PDO中使用此选项以获取受影响和匹配的行:

PDO::MYSQL_ATTR_FOUND_ROWS   => TRUE

如果在更新实例时找不到该行,它将返回0。希望这能有所帮助。

。。你读了我昨天的日记了吗???为什么不检查返回值呢?疯狂@hek2mgl这是我第一次使用PDO道歉-通过尝试和错误学习,并且它被证明是相当具有挑战性的。这与PDO无关。。这是一个通用的编程基础!!!检查您的返回值!!!