Javascript PHP-将图像插入数据库

Javascript PHP-将图像插入数据库,javascript,php,mysql,sql,mysqli,Javascript,Php,Mysql,Sql,Mysqli,你好,我的同事们 我需要一些帮助,我有这个问题。 我有这个数据库,我想通过JS将这些数据检索到我的代码中 我的数据库信息: create table datadatabase ( id int(10) not null AUTO_INCREMENT PRIMARY KEY, name varchar(25) not null default '', text longtext(25) not null default '',

你好,我的同事们

我需要一些帮助,我有这个问题。 我有这个数据库,我想通过JS将这些数据检索到我的代码中

我的数据库信息:

create table datadatabase (
id              int(10)  not null AUTO_INCREMENT PRIMARY KEY,
name            varchar(25) not null default '',
text            longtext(25) not null default '',
image           blob        not null  );
我想把数据输入这些字段

<img src="<?php echo $img ?>"/>
<h3> <?php echo $text.','.$name  ?>  </h3>
但问题是,文本和图像是一个滑块,我希望在每次有函数单击下一步按钮时检索新数据&ID应该是随机的,因此第一张幻灯片可能是ID 99,下一张幻灯片可能是158,依此类推

$('.Next').click(function(e) {
 e.preventDefault();
 Slide.appendSlide('<img src"<?php echo $img ?>"/><h3> </h3>') 
})
我应该如何处理这个问题?非常感谢你

Insert.php:

$bin_string = file_get_contents($_FILES["file"]["name"]);
$mysqli->query("INSERT INTO upload(image) VALUES ('" . $bin_string . "')");
Retrieve.php?id=1:

$result = $mysqli->query("SELECT * FROM upload id=1");
$output_bin_string = $result["image"];
header("Content-Type: image/png");
header("Content-Length: " . strlen($output_bin_string ));       
echo $output_bin_string;
通过Js访问:

 <img src="Retrieve.php?id=1" />

首先,在数据库中存储图像不是一个好的做法,但是如果您想这样做,您需要创建一个脚本,该脚本通过ID从db输出特定的图像,然后输出具有特定内容类型的原始数据。我还建议在其中一个数据库字段中插入图像的类型

url:/image.php?id=5 image.php

对于其他字段,只需像往常一样读取数据库。结果是:

<img src="http://..../image.php?id=<?php echo $id ?>"/>
<h3> <?php echo $text.','.$name  ?>  </h3>

$('.Next').click(function(e) {
 e.preventDefault();
 Slide.appendSlide('<img src"http://..../image.php?id=<?php echo $id?>"/><h3> </h3>') 
});
还建议在上传之前实现缓存和图像大小调整,以避免服务器负载


还有其他方法,如base64。我更喜欢自己使用带有图像元数据的文件系统,而不是仅使用用于图像存储的数据库,以使其具有可伸缩性

首先,您不应该在数据库中存储图像。您应该做的是将图像保存在一个目录中,然后在数据库中引用它们的文件名,这样您就可以将文件名回显到src属性中。我同意@mtanti。但是如果你打算用水滴来做,你可以尝试第二个答案,所以我从来没有尝试过这样的东西,所以我不保证它是否有效,但你可以试一试,你必须在这里逃跑。在查询中删除二进制字符串是错误的。intval是一个非常糟糕的替代方法。在mysqli和PDO几乎不太复杂的情况下,举一些过时的mysql_查询的例子也是非常糟糕的。感谢关于缓存和图像大小调整的提示,有什么文档可以做吗?
<img src="http://..../image.php?id=<?php echo $id ?>"/>
<h3> <?php echo $text.','.$name  ?>  </h3>

$('.Next').click(function(e) {
 e.preventDefault();
 Slide.appendSlide('<img src"http://..../image.php?id=<?php echo $id?>"/><h3> </h3>') 
});