当我尝试将图像数据添加到数据库时,我收到此错误。我上传的图像上传到服务器,但数据没有出现在数据库中。
错误代码:警告: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();
?>
答案 0 :(得分:2)
看起来你的预准备语句有六个可绑定参数,而你绑定七个。