gpt4 book ai didi

php - 上传图片到MySQL数据库

转载 作者:行者123 更新时间:2023-11-29 20:51:33 24 4
gpt4 key购买 nike

我正在使用此脚本尝试将图像与表单一起上传到我的数据库中。问题是,当我在查询中包含 $cover 时,$insert 的值为 false。谁能告诉我我做错了什么?

    <?php
session_start();
$con = mysqli_connect("localhost", "root", "", "testdb") or die("Error " . mysqli_error($con));

$title = "";
$year = "";
$director = "";
$genre = "";
$duration = "";
$description = "";
$name = "";

$error = false;

//check if form is submitted
if (isset($_POST['addmovie'])) {
$title = mysqli_real_escape_string($con, $_POST['title']);
$year = mysqli_real_escape_string($con, $_POST['year']);
$director = mysqli_real_escape_string($con, $_POST['director']);
$genre = mysqli_real_escape_string($con, $_POST['genre']);
$duration = mysqli_real_escape_string($con, $_POST['duration']);
$description = mysqli_real_escape_string($con, $_POST['description']);
$file = mysqli_real_escape_string($con, $_FILES['cover']['tmp_name']);

//name can contain only alpha characters and space
if (!preg_match("/^[a-zA-Z ]+$/",$title)) {
$error = true;
$title_error = "Name input must contain only alphabets and space";
}
if (!preg_match('/^[0-9]+$/',$year)) {
$error = true;
$year_error = "Year input must be only numbers";
}
if (!preg_match("/^[a-zA-Z ]+$/",$director)) {
$error = true;
$director_error = "Director input must contain only alphabets and space";
}
if(!preg_match("/^[a-zA-Z ]+$/",$genre)) {
$error = true;
$genre_error = "Genre input must contain only alphabets";
}
if(!preg_match('/^[0-9]+$/',$duration)) {
$error = true;
$duration_error = "Duration input must be only numbers";
}
if(!preg_match("/^[a-zA-Z ]+$/",$description)) {
$error = true;
$description_error = "Description input must be only letter and numbers";
}

if(!isset($file)) {
$error = true;
$cover_error = "Please select an image";
}else{
$cover = file_get_contents($_FILES['cover']['tmp_name']);
$cover_name = $_FILES['cover']['name'];
$cover_size = getimagesize($_FILES['cover']['tmp_name']);

if($cover_size == false){
$error = true;
$cover_error = "that's not an image";
}
}

if (!$error) {
if($insert = mysqli_query($con,"INSERT INTO movies(title,d,director,genre,duration,description,cover,cover_name) VALUES('$title','$year','$director','$genre','$duration','$description','$cover','$cover_name')")) {
$successmsg = "Movie ".$title." scuccesfully uploaded!";
} else {
$errormsg = "Cannot upload image!";
}
}
}

?>

最佳答案

像这样加载后将文件转换为字符格式;

  $cover = base64_encode($cover);

插入之前。您还应该在 sql 语句中使用绑定(bind)。

关于php - 上传图片到MySQL数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38001335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com