mysqli_stmt :: bind_param (): Die Anzahl der Elemente in der Typdefinitionszeichenfolge stimmt nicht mit der Anzahl der Bindungsvariablen überein und kann nicht AKTUALISIERT werden.

Ich habe ein Problem, wenn ich diese Daten abschicke oder aktualisiere. Die Daten können nicht aktualisiert werden.

dieser Code:

if(isset($_GET['newsid'])){
    if(isset($_POST['submit'])){
        $sql = $connect->prepare("UPDATE news  set title =?, short_desc =?, isi =?, author =?, status =?,  date_period_start =?,  date_period_end =?, category =? WHERE newsid =?");
        $sql->bind_param('aaaaa', 
          $title,$short_desc,$isi,$author,$status,
         $date_period_start, $date_period_end, $category);
        $title = $_POST['title'];
        $short_desc = $_POST['short_desc'];
        $isi = $_POST['isi'];
        $author  = $_POST['author'];
        $status = $_POST['status'];
        $date_period_start = $_POST['date_period_start'];
        $date_period_end = $_POST['date_period_end'];
        $category = $_POST['category'];

        if($sql->execute()){
          echo "<script>location.href='index.php'</script>";
        }else{
          echo "<script>alert('".$sql->error."')</script>";
        };
}

$res =$connect->query("SELECT newsid, title, short_desc, isi, author, status, date_period_start, date_period_end, category from news
  where newsid=".$_GET['newsid']);
$row = $res->fetch_assoc();

?>
            <div class="container">
              <div class="row">
                <h2>UPDATE</h2>
              </div>
              <div class="row">


                <form role="form" method="post" action="">
                  <input type="hidden" value="<?php echo $row['newsid'] ?>" name="newid"/>
                  <div class="form-group">
                    <label>Category : </label>
                    <input type="text" name="category" id="category" value="<?php echo $row['category']  ?>"> <br><br>
                  </div>
                  <p>
                   <label> Title : </label>
                   <input name="title" id="title" size="40" maxlength="255" value="<?php echo $row['title']  ?>"/>
                   <p/>
                   <p>
                    <label> Author : </label>
                    <input name="author" id="author" size="40" maxlength="255" value="<?php echo $row['author']  ?>"/>
                    <p/>
                    <br/>
                    <p><label>Short Description : </label> 
                      <textarea  name="short_desc" id="short_desc" value="<?php echo $row['short_desc']  ?>">
                      </textarea>
                    </p>
                    <br>
                    <p>
                      <label>Description: </label>
                      <textarea name="isi" id="isi" rows="7" cols="90" value="<?php echo $row['isi'];  ?>"></textarea>
                    </p>
                    <br/>
                    <p>
                     <label> Status: </label>
                     <input type="text" name="status" id="status" value="<?php echo $row['status']  ?>"/> <br><br>
                     <p/>
                     <p>
                      <label> Display Periode </label>

                      <input type="text" id="date_period_start" name="date_period_start" value="<?php echo $row['date_period_start']  ?>"/>
                      <input type="text" id="date_period_end" name="date_period_end" value="<?php echo $row['date_period_end']  ?>"/>
                      <input type="checkbox" name="cek" value="yes"/><br><br>
                    </p> 

                    <button type="submit" name="submit" class="btn btn-default">Submit</button>
                  </form>
          <?php
        }
          ?>

Die Ausgabe, die ich bekomme:

mysqli_stmt::bind_param(): Number of elements in type definition string doesn't match number of bind variables .

Und auch diese Warnung:no data supplied for parameters in prepared statement.

Und tatsächlich kann ich die Daten nicht aktualisieren.

Bitte helfen Sie mir, diesen Code zu lösen. Ich kann keinen Fehler finden, wenn ich @ aktualisie

Vielen Dank

Antworten auf die Frage(4)

Ihre Antwort auf die Frage