代码之家  ›  专栏  ›  技术社区  ›  user1532468

foreach循环不向mysql中插入值

php
  •  -1
  • user1532468  · 技术社区  · 7 年前

    我的foreach循环无法将数据插入数据库。如果我将insert语句从循环中去掉,它可以正常工作,但只适用于1个项。回声也没有返回任何数据。如果有人能检查我的代码并指出我的错误,我将不胜感激。

    假设所有连接都已建立,并且al$u post值正确。多谢

    <?php
        session_start();
        include($_SERVER['DOCUMENT_ROOT'] . '/lsorg/users/Connections/ls.php');
    
        $company = strtoupper(mysqli_real_escape_string($conn, $_SESSION['ls_idcode_usr']));
        $activity = "Box Return";
        $address = ucwords(mysqli_real_escape_string($conn, $_POST['address']));
        $service = ucwords(mysqli_real_escape_string($conn, $_POST['service']));
        $success = 'SUCCESS';
        $authorised = mysqli_real_escape_string($conn, $_SESSION['ls_name_usr']);
        $dept = strtoupper(mysqli_real_escape_string($conn, $_POST['dept']));
        $boxitems = $_POST['sub'];
        $box = implode(",",$boxitems);
        $array = array();
        $array = $boxitems;
    
    
        foreach ($array as $boxes) {
            $outString .= "$box" . "  ";
    
            //$boxitem = $box;
    
            $sql = "INSERT INTO act 
                            (service, activity, department, 
                             company, address, user, 
                            `date`, item, new) 
                    VALUES ('".$service."', '".$activity."', '".$dept."', 
                            '".$company."', '".$address."', '".$authorised."', 
                            NOW(), '".$boxes."', '1')";
            $result = mysqli_query($conn, $sql) or die ('Error inserting box:' . mysqli_error());
    
    
        }
        echo $outString;
        mysqli_close($conn); // Connection Closed
    ?>
    

    添加调试代码后

    警告:implode()[函数.implode]:在第16行的c:\wamp\www\lsorg\users\brtn.php中传递的参数无效警告:在第22行的c:\wamp\www\lsorg\users\brtn.php中为foreach()提供的参数无效字符串(10)“demobox050”注意:未定义的变量:在第39行的c:\wamp\www\lsorg\users\brtn.php中的outstring

    答复中的内容 $_POST['sub']

    DEMOBOX044,DEMOBOX050
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   Bert Maurau    7 年前

    您的变量不正确。

    编辑成@riggsfolly敏锐的眼睛!(内爆->爆炸)

    见代码:

    // OLD: $boxitems = implode(",", $_POST['sub']);
    $boxitems = explode(",", $_POST['sub']);
    
    foreach ($boxitems as $box) {
      $outString .= "$box" . "  ";
      ...
    

    没必要这么做……

    $boxitems = $_POST['sub'];
    $box = implode(",",$boxitems);
    $array = array();
    $array = $boxitems;
    
    推荐文章