2016-03-30 15 views
0

私はコーディングで初心者です。私はちょうど私の旅行代理店のための新しいメンバーのデータを作成します、私はこのコードがうまく動作していないとき混乱しています。私は最初にmysqliの4行にこのコードを使用していますが、うまく動作していますが、複雑なデータを試してみると、実行されません。ここ警告:mysqli_stmt :: bind_param():変数の数がプリペアドステートメントのパラメータの数と一致しません5

は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> 
+0

背後id値を含む変数は、あなたが 'id'バインドが欠落しているID

。 – radoh

答えて

0

エラーメッセージそれがすべてだと言う:

警告:mysqli_stmt :: bind_param():変数の数は、プリペアドステートメントのパラメータの数と一致しませんあなたのクエリ自体は、あなたのバインド・パラメータが最初の31個のパラメータではなく、塗りつぶし32疑問符が含まれてい

最後の1、あなたはbind_paramの文字列変数にiを追加する必要があり、その後、他のすべての変数

関連する問題