php中不支持的操作数类型

时间:2017-12-04 09:48:08

标签: php

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;

此行给出错误

2 个答案:

答案 0 :(得分: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 queries并在继续项目之前更加关注良好的代码质量。

答案 1 :(得分: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');