【问题标题】:Variable in Php Pdo not definePhp Pdo 中的变量未定义
【发布时间】:2016-04-07 21:54:14
【问题描述】:

我在 pdo 中有一个数组,它没有显示任何输出,说变量图像未定义变量 $pic 未定义.... 下面是代码,请告诉我我错在哪里......

$rows = $result->fetch(PDO::FETCH_NUM);
if(count($rows) > 0) {
    while($row=$result->fetch(PDO::FETCH_OBJ)){
    $image = $row['file'];
    $pic = array('1.jpg','2.jpg','3.jpg',$image);
    }
    }

我正在使用 for 循环回显这个数组,但变量定义错误....

 <?php 
  for($i=0;$i<4;$i++)
   echo"<option  data-img-src=\"$pic[$i]\" value=\"$pic[$i]\" ></option>";

    ?>

【问题讨论】:

    标签: php mysql arrays pdo


    【解决方案1】:

    您使用的是FETCH_OBJ 样式,然后将输出当作数组使用,从而导致错误。

    这可能有两种方式:

    • 将 fetch 样式更改为 FETCH_ASSOC 以便您可以将其用作数组

      while($row=$result->fetch(PDO::FETCH_ASSOC)){
      $image = $row['file'];
      
    • 或者更改$image 行,使其使用$row 变量作为对象。

      while($row=$result->fetch(PDO::FETCH_OBJ)){
      $image = $row->file;
      

    【讨论】:

      【解决方案2】:

      $pic 定义在while 循环的范围内。在顶部声明它,它将起作用。旧版本的 php 可以正常工作,但最新版本有例外。

        $pic="";
        $rows = $result->fetch(PDO::FETCH_NUM);
        if(count($rows) > 0) {
          while($row=$result->fetch(PDO::FETCH_OBJ)){
          $image = $row['file'];
          $pic = array('1.jpg','2.jpg','3.jpg',$image);
          }
        }
      

      【讨论】:

      • 它不起作用我只为 $image 编写数组并在 while 中获取 $image 的数据,所以我如何从循环外部写入/
      猜你喜欢
      • 2013-11-30
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多