Поместите изображение в базу данных SQLite - PullRequest
3 голосов
/ 31 января 2012

Согласно этой теме я должен использовать 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).

Почему это не работает?

Это , как выглядит остальная часть моей реализации.

Редактировать:

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 2.0-dev $ Id: sqlite.c, v 1.166.2.13.2.9 2007/05/19 17:58:22 iliaa Exp $

Библиотека SQLite 2.8.17

Кодировка SQLite UTF-8

Драйверы PDO mysql, odbc, sqlite, sqlite2

pdo_sqlite

Модуль PECL версии 1.0.1 $ Id: pdo_sqlite.c, v 1.10.2.6.2.2 2007/03/23 14:30:00 wez Exp $

Библиотека SQLite3.3.6

PDO:

Драйверы PDO 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' />

Таким образом, я могу отображать изображения.Но как я могу вставить изображение в базу данных?

1 Ответ

0 голосов
/ 01 февраля 2012

Возможно, вы избежите многих головных болей, если закодируете файл и сохраните его в текстовом поле.

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

Для чтения вам понадобится base64_decode.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...