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

标签 php html mysql sql

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

代码目前的样子:

<?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/

相关文章:

php - 从数组中删除空/空白元素/索引/键

php - 如何使用 mysql 和 php 内连接具有相同 id 的表?

php - 通过 id 在 mysql 表中获取要更新的文章?

php - 需要使用 array_key_exists 从 mysql 获取数据值

html - 向左浮动不适用于菜单

javascript - 使用输入值修改多个 a href 目标

javascript - Div 和 ul 并排列出

Mysql更新+SELECT查询

php - 扩展 Drupal

php - 我可以让 mysql 在一列中的任何行上搜索相同的匹配项吗?