php 中不支持的操作数类型

问题描述 投票:0回答:2
if ($opt_selected=="y")
     {
        # code...
   
          $errorMessage = "";
         $phone = $_POST['phone'];
         $myString = $phone;
         $myArray = explode(',', $myString);
         print_r($myArray);

          if ($errorMessage != "" ) 
          {
                    echo "<p class='message'>" .$errorMessage. "</p>" ;
     
          }
              else

         {
             $max_id=mysqli_query($db,"select max(id) from batch");
             $row = mysqli_fetch_array($max_id);
      //error is for below line :Unsupported operand types                
                    $row=$row+1;

                     $res=mysqli_query($db,"INSERT INTO batch(`id`,`phone`) VALUES (row,'$myArrays')");
                     
                     $delete = mysqli_query($db,'insert into to_numbers_hist select * from to_numbers');
                     $delete = mysqli_query($db,'delete from to_numbers');

            foreach ($myArrays as $myArray) {

              
                      
                   $ins="INSERT INTO `codexworld`.`to_numbers`(`batch_id`,`phone`)
            VALUES ('$id','$phone')";
            $test=mysqli_query($db,$ins) or die(mysqli_error($db));
            if($test)
            echo "<script type='text/javascript'>alert('submitted successfully!')</script>";
            else
            echo "<script type='text/javascript'>alert('failed!')</script>";
                     
            }
/
                  
         }

这里给出这样的错误

不支持的操作数类型

所以我不知道该怎么办,请让我纠正我错的地方

for-each 循环是否正确

在这里,我在文本框中输入数字,以逗号分隔,通过拆分这些逗号并存储到数据库中并生成 id,我们在另一个表中引用该 id 所以我需要做什么来克服这个问题,

//以下行出现错误:不支持的操作数类型
$行=$行+1;

此行给出错误

php
2个回答
0
投票

$row 是一个结果集。您不能对结果集执行 $row +1 操作

if ($row) {
      while($data = mysql_fetch_array($data)) {

           $value=$data[max(id)];
           $value=$value+1;

      }

    }
    else {
      echo mysql_error();
    }

将检索到的数据$value用于您的操作

还要更改以下内容。您错过了 $ 标志

$res=mysqli_query($db,"INSERT INTO batch(`id`,`phone`) VALUES ($row,'$myArrays')");

我也怀疑你这行代码的意思

$delete = mysqli_query($db,'insert into to_numbers_hist select * from to_numbers');

0
投票

当您使用以下命令从 MySQL 返回数据时,您的

$row
变量包含一个数组:

$row = mysqli_fetch_array($max_id);

+1 根本不适用于数组。相反,创建一个像

$rc=0;
这样的变量(用于行计数)并在循环中递增它。

这样做也没有意义:

$res=mysqli_query($db,"INSERT INTO batch(`id`,`phone`) VALUES (row,'$myArrays')");

您的

row
最有可能被称为
$row
但随后您会尝试将数组保存到数字列中,这同样适用于
$myArrays
变量。

我建议您首先熟悉MySQL 查询,并在继续项目之前更加关注良好的代码质量。

© www.soinside.com 2019 - 2024. All rights reserved.