douyu7618 2019-02-26 15:09
浏览 348
已采纳

如何修复“警告:非法字符串偏移”

Previously I tried translating the php pdo code to my php version, but I got a problem like this. "Warning: Illegal string offset 'tagName' in...". Can someone help me, what should i do? i dont know basic code.

PDO Version:

$stmt2 = $db->prepare('SELECT catTitle, catSlug FROM blog_cats, blog_post_cats WHERE blog_cats.catID = blog_post_cats.catID AND blog_post_cats.postID = :postID');
$stmt2->execute(array(':postID' => $row['postID']));
$catRow = $stmt2->fetchAll(PDO::FETCH_ASSOC);
$links = array();
foreach ($catRow as $cat)
{
$links[] = "<a href='c-".$cat['catSlug']."'>".$cat['catTitle']."</a>";
}
echo implode(", ", $links);

My Php:

  $check_tag = mysql_query("SELECT tagName, tagSlug FROM tb_tags, tb_tag_posts WHERE tb_tags.tagID = tb_tag_posts.tagID AND tb_tag_posts.postID = '".$post['postID']."'") or die(mysql_error());
  $tagRow = mysql_fetch_assoc($check_tag);
  $tag_links = array();
  foreach($tagRow as $tag){
    $tag_link[] = "<a href=''>".$tag['tagName']."</a>";
  }
  echo implode(", ", $tag_link);

I need to create like this: tag-1, tag-2

  • 写回答

1条回答 默认 最新

  • dsgawmla208057 2019-02-26 15:14
    关注

    $tagRow is a single row with 2 keys/values. $tag is a string value. You'll want to use a while loop to get each row, then you can get the values.

      $check_tag = mysql_query("SELECT tagName, tagSlug FROM tb_tags, tb_tag_posts WHERE tb_tags.tagID = tb_tag_posts.tagID AND tb_tag_posts.postID = '".$post['postID']."'") or die(mysql_error());
      $tag_links = array();
      while($tagRow = mysql_fetch_assoc($check_tag);){
        $tag_link[] = "<a href=''>".$tagRow['tagName']."</a>";
      }
      echo implode(", ", $tag_link);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?