警告:explode()要求参数2是字符串,对象在第27行的E:\wamp\www\arihant\view\u details.php中给出,因此出现此错误

警告:explode()要求参数2是字符串,对象在第27行的E:\wamp\www\arihant\view\u details.php中给出,因此出现此错误,php,validation,explode,Php,Validation,Explode,每次输入数据库中不存在的b_no时,我都会收到此警告。我正在使用Microsoft Access 2007作为后端,并收到以下警告: 警告:explode()要求参数2是字符串,对象在第27行给出 如果它不在数据库中,则在使用explode() 变量$rs19包含结果集而不是关联数组。您必须从该结果集中获取一行,才能获取要查找的关联数组 不确定您使用的是什么php/mysql库,但它应该是这样的 if($rs19>0){ //there is a record }

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

警告:explode()要求参数2是字符串,对象在第27行给出


如果它不在数据库中,则在使用
explode()


变量
$rs19
包含结果集而不是关联数组。您必须从该结果集中获取一行,才能获取要查找的关联数组

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

 if($rs19>0){
     //there is a record
    }
    else {  
    echo "no records found";
    }

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

$row19 = $rs19->fetch();
为此:

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

在分解之前添加此代码:
if(is_object($rs19['item'])print_r($rs19['item']);如果(is_object($rs19['qty'])打印($rs19['qty'])
,并在此处发布输出结果,则如果我传递了表中的b_no,则代码将正确执行。但如果我传递了一个表中不存在的值,那么问题就出现了。意味着我无法验证我的查询。他们确实执行了check@LoganMurphy你是什么意思?他们开支票。他们只是无法与0相比。我相信你的测试结果会和他们的一样。(第10行)注意:在我的上述代码中进行上述修改后,如果我传递了一个b_no,则类variant的对象无法转换为int,该int表示代码正确执行。但如果我传递了一个表中不存在的值,那么问题就出现了。意味着我无法验证我的查询您是否尝试了
var\u dump
查看
$rs19
包含的内容?您使用的是什么php/mysql库。对于每个输入,在更改为上述代码后都会显示“未找到记录”。非常奇怪。。。好的,尝试将其更改回
if($rs19)
,然后查找输入,这将导致“warning:explode()…”,当您确定找到它时,添加
print\r($rs19['item')和<代码>打印($rs19['qty'])在第行
$itm=分解(',',$rs19['item'])之前,然后告诉我,在这种情况下它会输出什么。
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']);