gpt4 book ai didi

php - 无法在数据库中更新和/或插入图像(显示它也有问题)

转载 作者:行者123 更新时间:2023-11-29 13:44:18 26 4
gpt4 key购买 nike

你好,我又来了,遇到了一个新问题。所以我设法让代码可以在我上传图片的地方工作。但是,我都需要更新已经存在的行(我添加了可用于图片的字段)并显示图片。但目前我只能更新一个专用于图像的小型数据库。它的问题是它无法正确上传。我收到错误消息“由于某种原因无法上传!”但我不知道为什么。

代码目前的样子:

<?php

session_start();

?>

<!DOCTYPE html>

<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1.0" />
<title>TF2 NUT</title>
<link rel="stylesheet" href="css/style.css" />
</head>

<div id="Container">

<div id="header">
<h1>Welcome to TF2 NUT!</h1>
</div>

<div id="nav">

<?php

include_once "nav.php";

?>

</div>

<div id="Content">
<form action="CAPimg.php" method="POST" enctype="multipart/form-data">
Choose weapon to upload to: <br />
<input type="text" name="Name" id="Name" /><br />
<input type="file" name="image"><input type="submit" name="submit" value="Upload" />
</form>
<?php

if(isset($_POST['submit'])) {

mysql_connect("localhost","root","") or die("Could not find database!");
mysql_select_db("weapons") or die("Could not find database!");

$Name = strip_tags ($_POST['Name']);
$imageName = mysql_real_escape_string($_FILES["image"]["name"]);
$imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"]));
$imageType = mysql_real_escape_string($_FILES["image"]["type"]);

if(substr($imageType,0,5) == "image") {
mysql_query("UPDATE `weapon` VALUES Image_name='$imageName', Image='$imageData' WHERE Name='$Name' AND Creator='$_SESSION[username]'") or die("Could not upload for some reason!");
echo "Image uploaded!";
}
else
{
echo "Only images are allowed!";
}

}

?>
<br />
<a href="subcentral.php">Return to submission central</a>
</div>

</div>

</html>

我从“nav.php”中存在的登录名中获取“Creator”。我寻找过指南,但大多数指南要么只涵盖文件目录(我使用远程服务器,所以我不能这样做)和/或 ASP。是的,我知道我应该将代码更新为新扩展,但目前为时已晚。因此,如果有人可以帮助我显示我的图像(而不像这样引用 id:

<?php

mysql_connect("localhost","root","") or die("Could not find database!");
mysql_select_db("images") or die("Could not find database!");

if(isset($_GET['id'])) {

$id = mysql_real_escape_string($_GET['id']);
$query = mysql_query("SELECT * FROM `blob` WHERE `id`='$id'");

while($row = mysql_fetch_assoc($query)){

$imageData = $row["image"];


}
header("content_type: image/jpeg");
echo $imageData;

}
else
echo "Error!";

?>

<html>
<body>

<img src="showimage.php?id=4">

</body>
</html>

我的数据库包含多个字段:

id, Creator, Name, Base_Damage, Damage, Pellets, Attackspeed, RS(first), RS(consecutive), Loaded, Reserve, Critical, Ability, Piece_set, Bonus_set, Description, Image_name, Image.

正如您所看到的,最后两个字段专用于图像,这就是我想要更新的内容。当我写出该行中包含的信息时。

如果有人帮助我解决第一个问题,我会很高兴,但如果有人能帮助我解决这两个问题,我会很高兴(因为我是 PHP 新手)。就像往常一样,如果您希望我澄清任何内容或发布我可能与之相关的任何代码,请询问我。

最佳答案

如果您引用UPDATE文档中,可以看到查询语法是错误的。

正确的语法如下:

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

您需要使用SET而不是VALUES

尝试:

mysql_query("
UPDATE `weapon` SET Image_name='$imageName',Image='$imageData'
WHERE Name='$Name' AND Creator='$_SESSION[username]';
") or die("Could not upload for some reason!");

希望这有帮助!

关于php - 无法在数据库中更新和/或插入图像(显示它也有问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17641844/

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