错误:PHP中的字符串偏移量非法

错误:PHP中的字符串偏移量非法,php,mysql,Php,Mysql,我一直在稳步开发我的网站,直到我出现以下错误: Warning: Illegal string offset 'user_post' in C:\xampp\xxxxxx\xxxx.php on line 15 我已经做了三天了,现在我仍然不知道是什么原因导致了这个错误,这是我第一次遇到这个错误,所以我真的不知道如何解决,我真的很想得到一些帮助 这是我的PHP代码: <?php $db = new mysqli("xxxxxxxxxxxxxxx", "xxxxxxxx", "xxxx

我一直在稳步开发我的网站,直到我出现以下错误:

Warning: Illegal string offset 'user_post' in C:\xampp\xxxxxx\xxxx.php on line 15
我已经做了三天了,现在我仍然不知道是什么原因导致了这个错误,这是我第一次遇到这个错误,所以我真的不知道如何解决,我真的很想得到一些帮助

这是我的PHP代码:

<?php
  $db = new mysqli("xxxxxxxxxxxxxxx", "xxxxxxxx", "xxxxxxxxxxxxxx", "xxxxxxxxx");
  if($db->connect_errno > 0) {
    die('Unable to connect to database [' . $db->connect_error . ']');
  }

  $sql = "SELECT * FROM page_posts";
  $post_arr = array();
  $post_arr = $db->query($sql);
  $post_rows = $post_arr->fetch_array()

  foreach($post_rows as $row)
  {
    echo $row['user_post'];
  }
?>
还有其他列,但我省略了它们,因为它们与结果无关

这是vardump结果:

array(24) { [0]=> string(1) "3" ["post_id"]=> string(1) "3" [1]=> string(1) "0" ["user_id"]=> string(1) "0" [2]=> string(13) "My First Post" ["post_title"]=> string(13) "My First Post" [3]=> string(329) "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse tincidunt neque in erat vestibulum, sed gravida odio venenatis. Nam ut nunc libero. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus volutpat ultricies enim. Nullam luctus odio urna, vitae posuere justo semper in." ["user_post"]=> string(329) "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse tincidunt neque in erat vestibulum, sed gravida odio venenatis. Nam ut nunc libero. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus volutpat ultricies enim. Nullam luctus odio urna, vitae posuere justo semper in." [4]=> string(19) "2013-11-22 00:00:00" ["post_date"]=> string(19) "2013-11-22 00:00:00" [5]=> string(12) "Post-an-idea" ["post_page"]=> string(12) "Post-an-idea" [6]=> NULL ["additional_details"]=> NULL [7]=> string(1) "0" ["up_votes"]=> string(1) "0" [8]=> string(1) "0" ["down_votes"]=> string(1) "0" [9]=> NULL ["voted_users"]=> NULL [10]=> string(1) "1" ["is_valid"]=> string(1) "1" [11]=> string(6) "active" ["post_status"]=> string(6) "active" }

您应该迭代行,而不是同一行的列

<?php
  $db = new mysqli("xxxxxxxxxxxxxxx", "xxxxxxxx", "xxxxxxxxxxxxxx", "xxxxxxxxx");
  if($db->connect_errno > 0) {
    die('Unable to connect to database [' . $db->connect_error . ']');
  }

  $sql = "SELECT * FROM page_posts";
  $post_arr = array();
  $post_arr = $db->query($sql);

  while ($row = $post_arr->fetch_assoc())
  {
    echo $row['user_post'];
  }
?>

您应该迭代行,而不是同一行的列

<?php
  $db = new mysqli("xxxxxxxxxxxxxxx", "xxxxxxxx", "xxxxxxxxxxxxxx", "xxxxxxxxx");
  if($db->connect_errno > 0) {
    die('Unable to connect to database [' . $db->connect_error . ']');
  }

  $sql = "SELECT * FROM page_posts";
  $post_arr = array();
  $post_arr = $db->query($sql);

  while ($row = $post_arr->fetch_assoc())
  {
    echo $row['user_post'];
  }
?>

回复已经很晚了,但我还是想分享一下。。 当您使用

foreach()循环

所以

$post_行必须是数组。您正在使用它作为变量

所以只需使用以下代码

$post_arr[]=$db->query($sql)
$post_rows[]=$post_arr->fetch_array()


其他一切都很完美。

回复已经很晚了,但我还是想分享一下。。 当您使用

foreach()循环

所以

$post_行必须是数组。您正在使用它作为变量

所以只需使用以下代码

$post_arr[]=$db->query($sql)
$post_rows[]=$post_arr->fetch_array()


其他一切都很完美。

您的页面帖子表中没有“user\u post”列。哦,但是我有,我已经仔细检查过了。请提供表结构,并让我们知道哪一行是第15行,是$row['user\u post',因为我们可以猜测,但知道有助于
mysqli::fetch\u assoc
获取一行。您的
foreach
迭代该行中的字段。
var\u dump($row)
查看您试图在此处将什么视为数组。您的page\u posts表中没有“user\u post”列。哦,但是我有,我已经仔细检查过了。请提供表结构,并让我们知道哪一行是第15行,是$row['user\u post']因为我们可以猜测,但知道有助于
mysqli::fetch\u assoc
获取一行。您的
foreach
迭代该行中的字段。
var\u dump($row)
以查看您试图在此处作为数组处理的内容。