现在已经挣扎了几个小时。任何人都可以指出我出错的地方。
我得到的第一个错误是:
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?';
}
答案 0 :(得分:2)
必须在PDO语句上调用rowCount(),而不是在PDO实例上调用!
$ result-&GT; rowCount时();阅读错误可能会有所帮助......
答案 1 :(得分: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及其用法。
答案 2 :(得分:0)
在PDO中使用此选项可获取受影响和匹配的行:
PDO::MYSQL_ATTR_FOUND_ROWS => TRUE
如果在更新时未找到该行,则会返回0.希望这会有所帮助。