php - 将图像放入 SQLite 数据库

标签 php database image sqlite pdo

根据 this thread我应该使用 fopen .我已经这样做了,但在我的示例中,我使用的是 bindValue而不是 bindParam .

$query->bindValue(':'.$key, fopen($value, "rb"), PDO::PARAM_LOB);

$value包含文件的路径 (/var/www/html/....jpg)。

我试过了,但是当我打开带有特定条目的 SQLiteManager 时,我得到了 [Exception ... "Component returened failure code 0x8052000b (NS_ERROR_FILE_CORRUPTED) .

为什么这行不通?

This我的其余实现是这样的。

编辑:

file_get_contents给我带来同样的错误。

也许是 php 模块的问题?

SELECT sqlite_version()给我带来 3.7.7.1

phpinfo()给我

配置命令:'--without-sqlite'

解析的其他 .ini 文件:/etc/php.d/pdo_sqlite.ini、/etc/php.d/sqlite.ini

SQLite:

PECL Module version 2.0-dev $Id: sqlite.c,v 1.166.2.13.2.9 2007/05/19 17:58:22 iliaa Exp $

SQLite Library 2.8.17

SQLite Encoding UTF-8

PDO drivers mysql, odbc, sqlite, sqlite2

pdo_sqlite

PECL Module version 1.0.1 $Id: pdo_sqlite.c,v 1.10.2.6.2.2 2007/03/23 14:30:00 wez Exp $

SQLite Library 3.3.6

PDO:

PDO drivers mysql, odbc, sqlite, sqlite2

编辑 2:

这就是我显示 BLOB 图像的方式。 getimage.php

header("Content-type: image/jpg");

require_once('class.DatabaseQuery.php');

$db = new DatabaseQuery();
$name = sqlite_escape_string($_GET['name']);
$sql = "SELECT image FROM $name WHERE _id=:id;";

$id = $_GET['id'];
$result = $db->ExecuteQuery($sql, array("id"=>$id));

echo $result[0]['image'];

显示图像:<img src='getimage.php?name=$printname&id=" . $row['_id'] . "' heigth='75' width='75' alt='Test' />

所以我可以显示图像。但是我怎样才能在数据库中插入图像呢?

最佳答案

如果您对文件进行编码并将其保存在文本字段中,您可能会避免很多麻烦。

$dataToSave = base64_encode(file_get_contents('filename'));

要阅读,您需要一个 base64_decode。

关于php - 将图像放入 SQLite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9081932/

相关文章:

javascript - 无法连接到数据库-MySQLi错误

php - 如何在 laravel 中使用条件数组从数据库中进行选择

css - 我正在尝试建立一个 polymer 网站,我想知道如何将 iron-image 元素设置在中心

iphone - cocos2d OpenGL 错误 0x0502 -[EAGLView swapBuffers]

php - PayPal IPN 没有做任何事情

php - 如何使用 codeigniter 将数据与 MySql 中的现有数据进行 CONCAT?

php - 每个月的Mysql计数

php - 将数组分组为 2 个元素的子数组,最后一组缺失

mysql - 获取 UPDATE 的目标表时出错不可更新

html - 根据字体大小调整图像大小