我需要插入一个图像到MySQL数据库使用准备statements ...一切都插入除了图像
$name = mysqli_real_escape_string($conn, $_POST['name']);
$category = mysqli_real_escape_string($conn, $_POST['category']);
$privacy = mysqli_real_escape_string($conn, $_POST['privacy']);
$maxmembers = mysqli_real_escape_string($conn, $_POST['maxmembers']);
$description = mysqli_real_escape_string($conn, $_POST['description']);
$file = $_FILES['avatar']['tmp_name'];
$image = addslashes(file_get_contents($_FILES['avatar']['tmp_name']));
$image_name =addslashes($_FILES['avatar']['tmp_name']);
$image_size = getimagesize($_FILES['avatar']['tmp_name']);
$sql = "INSERT INTO hjuma_groups (name, description, category, privacy, maxmembers, owner, avatarname, avatar) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
echo "SQL error";
}else {
mysqli_stmt_bind_param($stmt,"sssssssb", $name,$description,$category, $privacy,$maxmembers, $owner, $image_name, $image);
mysqli_stmt_execute($stmt);
}
2条答案
按热度按时间jljoyd4f1#
我认为您遗漏的拼图块是图像数据上的
base64_encode
,如下所示:44u64gxh2#
你不需要插入你的图像通过编码到base64_encode它可以很容易地工作通过这样做
然后在预准备语句中插入如下数据
插入图像作为blob数据表中的存储。
然后像这样显示在你的网页上
注意:mysqli_escape_真实的_string和addslashes在预准备语句中会产生问题,请不要使用它。如果你喜欢我的答案,请把我的答案放在1号。谢谢