存储所有信息并使用图像文件系统的一种方法是将两者结合起来!
如果您有一个包含图像列表的表格,每个图像都包含图像文件名、上传时间和标题。
然后,您可以编写一个如下所示的简单类来管理每个图像:
class Image {
private $info;
public function __construct(int $id, $mysqli) {
$info = $mysqli->query("SELECT * FROM `images` WHERE `id`=" . $id);
$this->info = array();
$this->info["id"] = $info["id"];
$this->info["src"] = "/my/path/" . $info["name"] . "." . $info["type"];
$this->info["upload"] = strtotime($info["upload"]);
$this->info["tags"] = json_decode($info["tags"], true);
}
public function Id() { return $this->info["id"]; }
public function Src() { return $this->info["src"]; }
public function Upload() { return $this->info["upload"]; }
public function Tags() { return $this->info["tags"]; }
}
如果你的数据库中有这样的表,这个简单的类就可以工作:
+----------------------------------+------------+-----------+-----------------+-------------+
| id INT NOT NULL AUTO_INCREMENT | name TEXT | type TEXT | upload DATETIME | tags TEXT |
+----------------------------------+------------+-----------+-----------------+-------------+
所以现在,如果你知道你想要获取的图片的ID,你可以通过下面的代码来获取它:
$id = 57;
$img = new Image($id, $connection);
现在我们可以获取有关图像的信息!
echo $img->Id() // output: 57
echo $img->Src() // output: /my/path/image.png
echo $img->Upload() // output: 1375858084
该Tags()
函数将返回一个数组,该数组是从数据库中的列解码的 JSON。