警告:mysqli_stmt :: bind_param():变量数量与预备语句中的参数数量不匹配

时间:2018-03-05 10:44:11

标签: php mysql

当我尝试将图像数据添加到数据库时,我收到此错误。我上传的图像上传到服务器,但数据没有出现在数据库中。

错误代码:警告:mysqli_stmt :: bind_param():变量数量与第54行C:\ laragon \ www \ lspd \ production \ sabekle.php中预准备语句中的参数数量不匹配

54.Code

$stmt->bind_param('sssssss', $_POST['adsoyad'], $_POST['kgm'], $_POST['telefon'], $_POST['calisyer'], $resim_ad, $_POST['kimlikno'], $_POST['olaydetay']);
<!DOCTYPE html>
<html lang="tr">
<head>
    <title>Ürün Ekleme</title>
    <meta charset="utf-8">
</head>
<body>
    <form action="" method="post" enctype="multipart/form-data">
    <input type="text" name="adsoyad">Ad Soyad<br>
        <input type="text" name="kgm">Kişiyi Giren Memur<br>
        <input type="text" name="tel">Telefon<br>
        <input type="text" name="calisyer">Çalıştığı Yer<br>
        <input type="file" name="resim">Resim<br>
        <input type="text" name="kimlikno">Kimlik No<br>
        <input type="text" name="olaydetay">Olay Detayları<br>
        <input type="submit" value="Kaydet">
           </form>
</body>
</html>
<?php
require('veritabani_baglantisi.php');
$kontrol = require('oturum_denetle.php');
if($kontrol === false) {
    header('Location:login.php');
    exit();
}
if(!$_POST) exit();
    $db = @new mysqli('localhost', 'root', '1234', 'lspd');
    if ($db->connect_errno) die('Bağlantı Hatası:'. $db->connect_error);

        #Tablo veri karakter yapısı
        $db->set_charset("utf8");

        #Formdan yüklenicek ürün resmini kontrol edelim ve ona göre yükleyelim
        $izin_verilen = array("gif", "pjpeg", "jpeg", "jpg", "png", "x-png");

        #TYPE bilgisi yani image gif gibi bilgiyi / işaretinden parçalayalım
        $tip = end(explode("/", $_FILES["resim"]["type"]));

        #image gif gibi bilgiden gif elde ettik izin verilenlerin içinde varmı
        if(!in_array($tip, $izin_verilen)) die('Hatalı Dosya');

        #Resim adını düzenleyelimdosya.gif gibi bilgiden gif elde ediyoruz
        #bu bilgiye time ekleyerek dosya adını 13123213.gif yapıyoruz
        $resim_ad =time(). '.'.end(explode(".", $_FILES['resim']["name"]));

        #Herşey yolunda olduğuna göre move upload ile yüklemeyi yapıyoruz
        move_uploaded_file($_FILES["resim"]["tmp_name"], './'. $resim_ad);

        #Prepare ile SQL Sorgusu hazırlıyoruz.
        $stmt = $db->prepare("INSERT INTO sablar VALUES(NULL,?,?,?,?,?,?)") OR die($db->error);

        #? İçin veri tiplerini ve değişkenleri tanımlayalımö
        $stmt->bind_param('sssssss', $_POST['adsoyad'], $_POST['kgm'], $_POST['telefon'], $_POST['calisyer'], $resim_ad, $_POST['kimlikno'], $_POST['olaydetay']);

        #execute ile sorguyu çalıştıralım
        $stmt->execute();
        #kayıt durumunu güncelleyelim
        echo ($db->sqlstate=="00000")
        ? $db->affected_rows . ' kayıt eklendi'
        : 'Hata oldu.Kayıt eklenmedi';
        #Bağlantıyı sonlandıralım
        $db->close();
        ?>

1 个答案:

答案 0 :(得分:2)

看起来你的预准备语句有六个可绑定参数,而你绑定七个。