-3

现在已经为此苦苦挣扎了几个小时。谁能指出我哪里出错了。

我得到 的第一个错误是:

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?';
    }
4

3 回答 3

3

rowCount() 必须在您的 PDO 语句上调用,而不是在您的 PDO 实例上!

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

于 2013-02-02T13:54:45.450 回答
2

可能是这样的:

$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) ) 

花一点时间(一两天),在php.net上阅读有关 PDO 及其用法的信息。

于 2013-02-02T13:55:46.977 回答
0

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

PDO::MYSQL_ATTR_FOUND_ROWS   => TRUE

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

于 2014-08-07T10:39:59.107 回答