gpt4 book ai didi

php - 插入查询后,来自表单的数据在数据库中显示为乱码

转载 作者:搜寻专家 更新时间:2023-10-30 23:39:18 24 4
gpt4 key购买 nike

我有一个简单的表单,允许用户上传图片并向图片添加标签,我将使用这些标签来搜索特定图片。

我在运行 SQL 查询时遇到问题:所有内容都已成功上传到数据库,但是当我检查数据库时 - 我命名为 tags 的列的图像表显示为乱码,我似乎无法找出原因。

我在 PHP 代码中回显了变量中的值,我可以看到它们没问题。我也尝试更改字符集,但仍然没有成功。

我是 PHP 的初学者。其中大部分内容是我自己学会的,但我对此一无所知。

感谢您对高级的帮助和考虑

这是我的表格

<html>
<title>Upload Image </title>
<body>
<form enctype="multipart/form-data" action="storeImage.php" method="POST">

<table border=0 align=center bgcolor=black width=100%>
<tr><td colspan=2><h2>&nbsp</h2></td></tr>
</table>


<table border=0 align=center bgcolor=blue>
<tr><td colspan=2><h2>Upload Image</h2></td></tr>
<tr>
<td>Image Name</td><td><input type=text name="name"></td>
</tr>
<tr>
<td>Image Tags</td><td><input type=text name="tags"></td>
</tr>
<tr>
<td>Image</td><td><input type=file name="images"></td>
</tr>
<tr>
<td></td><td><input type=submit name="submit" value="Store Image"></td>
</tr>
</table>
</form>
</body>
</html>

这是我用来存储图像的代码

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
$conn = mysql_connect ("localhost","root","vertrigo");
if(!$conn)
{
echo mysql_error();
}
$db = mysql_select_db("site_upload",$conn);
if(!$db)
{
echo mysql_error();
}

$name = $_POST['name'];
$tags = $_POST['tags'];
$images = addslashes (file_get_contents($_FILES['images']['tmp_name']));
$imagechk = getimagesize($_FILES['images']['tmp_name']);//to know about image type etc

$image_type = $imagechk['mime'];

$q ="INSERT INTO images VALUES('','$name','$tags','$images','$image_type')";



$s =mysql_query($q,$conn);

if($s)
{

echo "Image stored successfully";
echo"$tags";
}
else
{
echo mysql_error();
}


?>

和我的数据库结构

CREATE SCHEMA IF NOT EXISTS site_upload DEFAULT CHARACTER SET utf8 ;
USE site_upload ;

-- -----------------------------------------------------
-- Table site_upload.images
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS site_upload.images (
image_id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(45) NULL,
images LONGBLOB NOT NULL,
tags LONGTEXT NOT NULL,
image_type VARCHAR(45) NOT NULL,
PRIMARY KEY (image_id)
)

最佳答案

这是因为您将图像插入到标签字段中,反之亦然。你声明你的表是“image_id, name, images, tag,...”但是当你插入时你去 image_id, name, tag, images,..”一个好的标准是总是在你的插入中包含列名避免出现这种情况的声明。

话虽这么说,Technidev 对其他问题也是正确的。

关于php - 插入查询后,来自表单的数据在数据库中显示为乱码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37062551/

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