I am trying to save image to my database using mysqli in php. I maded a demo and I used a simple mysqli_query() and it worked. However, when I try to do the same using prepared statement; it doesnt work out. Here is my code:
$uploadedImage = array();
$uploadedImageName = array();
if(isset($_FILES['files']['tmp_name'])){
$num_files = count($_FILES['files']['tmp_name']);
echo $num_files;
if($num_files == 5){
for($i = 0; $i < $num_files; $i++){
$imgName = addslashes($_FILES['files']['tmp_name'][$i]);
$name = addslashes($_FILES['files']['name'][$i]);
if($_FILES['files']['tmp_name'][$i] != ""){
$imageContents = file_get_contents($imgName);
$encodedImage[$i] = base64_encode($imageContents);
$filename[$i] = $_FILES['files']['name'][$i];
array_push($uploadedImageName, $filename[$i]);
array_push($uploadedImage, addslashes($encodedImage[$i]));
echo "I got the file..<br>";
echo ",,".$filename[$i];
echo $encodedImage[$i];
}
}
} else{
echo "Number of files should be equal to 5";
return;
}
$sql = "INSERT INTO profile(first_name, middle_name, surname, imgname1, img1, imgname2, img2, imgname3, img3, imgname4, img4, imgname5, img5) VALUES (?, ?, ?,?, ?,?, ?,?, ?,?, ?,?, ?)";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("ssssbsbsbsbsb", $firstName, $middleName, $surname, $uploadedImageName[0], $uploadedImage[0], $uploadedImageName[1], $uploadedImage[1], $uploadedImageName[2], $uploadedImage[2], $uploadedImageName[3], $uploadedImage[3], $uploadedImageName[4], $uploadedImage[4]); // bind variables..
if($stmt->execute()){
echo 'success';
} else{
eccho 'failure';
}
It gives me success however, when I look into my database; I get no image under the image column. I wonder why this happens. May I know the reason why?