0

私はコーディングの初心者です。旅行代理店の新しいメンバー データを作成したばかりですが、このコードがうまく動作しないと混乱します。初めてこのコードをmysqliの4行に使用したときはうまく動作しましたが、複雑なデータを試したときは実行されませんでした。

ここにmysqliコードがあります:

if(isset($_GET['id'])):
 if(isset($_POST['submit'])):
      $stmt = $mysqli->prepare("UPDATE jamaah SET berangkatbulan=?, berangkattahun=?,bulandaftar=?, tahundaftar=?, nomorktp=?, namapertama=?, 
                                                namakedua=?, namaketiga=?, namaayahkandung=?, tempattanggallahir=?, 
                                                umur=?, jeniskelamin=?, kewarganegaraan=?, alamatlengkap=?, rtrw=?, kelurahan=?, kecamatan=?, 
                                                kabupaten=?, provinsi=?, kodepos=?, nomortelepon=?,
                                                nomerhp=?, email=?, alamatjakarta=?, pendidikan=?, pekerjaan=?, pernahhaji=?, namamahram=?, hubunganmahram=?, 
                                                golongandarah=?, pilihpaket=? WHERE id=?");
      $stmt->bind_param('sssssssssssssssssssssssssssssss', $berangkatbulan, $berangkattahun, $bulandaftar, $tahundaftar, $nomorktp, $namapertama,$namakedua, $namaketiga, $namaayahkandung,
                                $tempattanggallahir, $umur, $jeniskelamin, $kewarganegaraan, $alamatlengkap, $rtrw, $kelurahan, $kecamatan, $kabupaten,$provinsi,$kodepos,
                                $nomortelepon,$nomerhp,$email, $alamatjakarta,$pendidikan, $pekerjaan, $pernahhaji, $namamahram,$hubunganmahram, $golongandarah, $pilihpaket);

        $berangkatbulan=$_POST['berangkatbulan'];
        $berangkattahun=$_POST['berangkattahun'];
        $bulandaftar=$_POST['bulandaftar'];
        $tahundaftar=$_POST['tahundaftar'];
        $nomorktp=$_POST['nomorktp'];
        $namapertama=$_POST['namapertama'];
        $namakedua=$_POST['namakedua'];
        $namaketiga=$_POST['namaketiga'];
        $namaayahkandung=$_POST['namaayahkandung'];
        $tempattanggallahir=$_POST['tempattanggallahir'];
        $umur=$_POST['umur'];
        $jeniskelamin=$_POST['jeniskelamin'];
        $kewarganegaraan=$_POST['kewarganegaraan'];
        $alamatlengkap=$_POST['alamatlengkap'];
        $rtrw=$_POST['rtrw'];
        $kelurahan=$_POST['kelurahan'];
        $kecamatan=$_POST['kecamatan'];
        $kabupaten=$_POST['kabupaten'];
        $provinsi=$_POST['provinsi'];
        $kodepos=$_POST['kodepos'];
        $nomortelepon = $_POST['nomortelepon'];
        $nomerhp=$_POST['nomerhp'];
        $email=$_POST['email'];
        $alamatjakarta=$_POST['alamatjakarta'];
        $pendidikan=$_POST['pendidikan'];
        $pekerjaan=$_POST['pekerjaan'];
        $pernahhaji=$_POST['pernahhaji'];
        $namamahram=$_POST['namamahram'];
        $hubunganmahram=$_POST['hubunganmahram'];
        $golongandarah=$_POST['golongandarah'];
        $pilihpaket=$_POST['pilihpaket'];
        $id = $_POST['id'];

      if($stmt->execute()):
           echo "<script>location.href='index.php'</script>";
      else:
           echo "<script>alert('".$stmt->error."')</script>";
      endif;
 endif;
 $res = $mysqli->query("SELECT * FROM jamaah WHERE id=".$_GET['id']);
 $row = $res->fetch_assoc();

更新mysqliメッセージをクリックすると、次のようになります。

**Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in D:\xampp\htdocs\datarematour\admin\update.php on line 11**

これは私のサンプルphpコードです:

<label for="kewarganegaraan">Kewarganegaraan</label>
                            <select name="kewarganegaraan" class="form-control">
                            <option>-Pilih--</option>
                            <option value="<?php echo $row['kewarganegaraan'] ?>">Warga Negara Indonesia</option>
                            <option>Warga Negara Asing</option>
                            </select>

<div class="col-xs-6 col-md-4 form-group">
                            <label for="namapertama">Nama Pertama</label>
                            <input type="text" name="namapertama" value="<?php echo $row['namapertama'] ?>" class="form-control">
                        </div>
4

1 に答える 1

0

エラーメッセージはそれをすべて言います:

警告: mysqli_stmt::bind_param(): 変数の数が、準備されたステートメントのパラメーターの数と一致しません

クエリ自体には 32 個の疑問符が含まれており、バインド パラメーターは最初の 31 個のパラメーターを埋めますが、最後のパラメーターである id は埋めません。

ibind_param の文字列変数にを追加してから、他のすべての変数の背後にある id 値を含む変数を追加する必要があります

于 2016-03-31T16:21:19.473 に答える