$ imgData = addslashes(file_get_contents($ _ FILES ['userfile'] ['tmp_name'])); $ sql =“INSERT INTO imgexam (图片,名称) VALUES ('{$ imgData}','{$ _FILES ['userfile'] ['name']}');“;
答案 0 :(得分:1)
因此,要将其更新为新图像,您需要执行以下步骤:
如何使用PHP删除旧图像:
unlink('directory/images/'.$image);
您可能需要从数据库中进行选择才能获得正确的图像名称。
如何使用PHP上传新图像: Read this page了解有关上传文件的更多信息
然后在上传新图像后,您需要更改数据库中的行。
如何更改数据库中的行
$sql = "UPDATE FROM `table` SET `imagename` = '$newimagename' WHERE `imagename` = $oldimagename";
$query = mysql_query($sql) or die(mysql_error());
这就是你需要的步骤。问你是否有问题。
答案 1 :(得分:0)
您正在寻找更新记录的SQL查询与此类似:
UPDATE imgexam SET image = ? WHERE name = ?;
如果您有重复的名称,则需要检索记录的ID并在WHERE
子句中使用该ID。您可以使用PDO::lastInsertId()之类的方法或通过查询来获取ID。
您可能正在寻找的内容有时也称为UPSERT
操作。这意味着我想要UPDATE
或INSERT
。 MySQL提供了ON DUPLICATE KEY
子句。我们假设ID
是此表的主键。
将您的查询更改为
INSERT INTO
imgexam (id, image, name)
VALUES (1, '{$imageData}', '{$_FILES['userfile']['name']}')
ON DUPLICATE KEY UPDATE
image = '{$imageData}';
答案 2 :(得分:0)
更新BLOB内容的查询: mysql_escape_string()只是将字符串视为原始字节,并在其认为合适的地方添加转义。
$query = "UPDATE mytable SET blobthing = '" .mysql_escape_string($varblobthing) .
"' WHERE id=2";