复选框编码错误,数据插入完美,但出现两个错误.

use*_*032 -1 php mysql checkbox insert

警告:implode()[function.implode]:在第7行的C:\ xampp\htdocs\tempahperalatan\Page2.php中传递的参数无效

警告:mysqli_error()期望参数1为mysqli,在第23行的C:\ xampp\htdocs\tempahperalatan\Page2.php中给出null

我正在做一个表单来插入来自多个复选框的数据,我提交的数据被完美插入,但是一旦我打开页面上面出现上述两个错误(page2.php)任何人都可以告诉我在编码中我错过了什么或者在哪里是问题吗?先感谢您.

以下参考是我的PHP编码:

<?php

// Make a MySQL Connection
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("tempahperalatan") or die(mysql_error());

    $checkBox = implode(',', $_POST['item']);
    $microphones = $_POST['microphones'];
    $amplifiers = $_POST['amplifiers'];
    $loudspeakers = $_POST['loudspeakers'];
    $mixers = $_POST['mixers'];
    $catatan = $_POST['catatan'];   

if(isset($_POST['submit']))
{       
    $query="INSERT INTO pasystems (item, microphones, amplifiers, loudspeakers, mixers, catatan) VALUES ('" . $checkBox . "', '$microphones', '$amplifiers', '$loudspeakers', '$mixers', '$catatan')";     

    mysql_query($query) or die (mysql_error() );

    echo "<script type='text/javascript'>alert('Submitted successfully!')</script>";
}
    else{
    echo "<script type='text/javascript'>alert('Failed!')</script>" . $sql . "<br>" . mysqli_error($conn);  
    }
?>
Run Code Online (Sandbox Code Playgroud)

以下是我的表格:

<form action="page2.php" method="POST">


        <div class="form-group row text-left">
          <label for="example-date-input" class="col-2 col-form-label">Nama Peralatan: </label>
          <div class="col-10">

            <div class="form-group">
              <div class="form-row">
                <div class="col-md-2">
                        <div class="form-check text-left">
                            <label class="form-check-label">
                                <input class="form-check-input" name="item[]" type="checkbox" value="Microphones">
                                Microphones
                            </label>
                        </div>
                </div>
                <div class="">
                    <input class="form-control" type="number" value="0" name="microphones" id="example-number-input">                               
                </div>                                  
              </div>
            </div>

            <div class="form-group">
              <div class="form-row">
                <div class="col-md-2">
                        <div class="form-check text-left">
                            <label class="form-check-label">
                                <input class="form-check-input" name="item[]" type="checkbox" value="Amplifiers">
                                Amplifiers
                            </label>
                        </div>
                </div>
                <div class="">
                    <input class="form-control" type="number" value="0" name="amplifiers" id="example-number-input">    
                </div>
              </div>
            </div>

            <div class="form-group">
              <div class="form-row">
                <div class="col-md-2">
                        <div class="form-check text-left">
                            <label class="form-check-label">
                                <input class="form-check-input" name="item[]" type="checkbox" value="Loudspeakers">
                                Loudspeakers
                            </label>
                        </div>
                </div>
                <div class="">
                    <input class="form-control" type="number" value="0" name="loudspeakers" id="example-number-input">  
                </div>
              </div>
            </div>  

            <div class="form-group">
              <div class="form-row">
                <div class="col-md-2">
                        <div class="form-check text-left">
                            <label class="form-check-label">
                                <input class="form-check-input" name="item[]" type="checkbox" value="Mixers">
                                Mixers
                            </label>
                        </div>
                </div>
                <div class="">
                    <input class="form-control" type="number" value="0" name="mixers" id="example-number-input">    
                </div>
              </div>
            </div>                          

          </div>
        </div>                          

    <div class="form-group row text-left">
    <label for="exampleTextarea" class="col-2 col-form-label">Catatan: </label>
        <div class="col-10">
        <textarea class="form-control" name="catatan" id="exampleTextarea" rows="3"></textarea>
        </div>
    </div>

    <center><button type="submit" name="submit" class="btn btn-info">Submit</button></center>

</form> 
Run Code Online (Sandbox Code Playgroud)

eli*_*ide 5

出现第一个错误是因为$_POST['item']在尝试使用它之前没有检查是否存在.您需要在if块内移动这些线,或者更好的是,检查$_POST您要使用的每个元素:

$checkBox = implode(',', $_POST['item']);
$microphones = $_POST['microphones'];
$amplifiers = $_POST['amplifiers'];
$loudspeakers = $_POST['loudspeakers'];
$mixers = $_POST['mixers'];
$catatan = $_POST['catatan'];
Run Code Online (Sandbox Code Playgroud)

第二个错误是因为您正在将mysql_...函数与mysqli_...函数混合.你根本不应该使用mysql_...功能.这些mysql_*函数已经过时,已弃用且不安全 - 它们已完全从现代版本的PHP(7.0及更高版本)中删除.使用MySQLiPDO代替.