0
<?php
if(isset($_GET['b_no'])){ 
  $bno=$_GET['b_no'];

  include("connect.php");
  $query19="select * from billing where `b_no`=$bno";

  $rs19=$conn->execute($query19);

  if($rs19){
         $itm=explode(',',$rs19['item']);
         $qty=explode(',',$rs19['qty']);
          $r=count($itm); 


            for($i=0;$i<=$r;$i++) {  
                       if(isset($itm[$i]) && isset($qty[$i]))    {
                                  echo "item".$itm[$i]; 
                                  echo "qty".$qty[$i];      
                              echo "<br>";  
                        }
            }

    }
    else {  
    echo "no records found";
    }
}

  else { 
  echo "enter bill no";
  }
?> 

每次输入不在数据库中的 b_no 时,我都会收到此警告。我使用 Microsoft Access 2007 作为后端,并收到以下警告:

警告:explode() 期望参数 2 是字符串,第 27 行给出的对象

4

3 回答 3

1

该变量$rs19包含一个结果集而不是关联数组。您必须从该结果集中获取一行才能获得您正在寻找的关联数组。

不确定您使用的是什么 php/mysql 库,但它应该看起来像这样。

$row19 = $rs19->fetch();
于 2013-08-22T19:07:35.797 回答
0

作为一种快速而肮脏的解决方法,您可以更改以下内容:

if($rs19){
     $itm=explode(',',$rs19['item']);
     $qty=explode(',',$rs19['qty']);

对此:

if($rs19 && is_string($rs19['item'] && is_string($rs19['qty']){
     $itm=explode(',',$rs19['item']);
     $qty=explode(',',$rs19['qty']);
于 2013-08-23T11:57:27.140 回答
0

如果它不在数据库中,那么您应该在使用前进行检查explode()

 if($rs19>0){
     //there is a record
    }
    else {  
    echo "no records found";
    }
于 2013-08-22T18:58:46.590 回答