Согласно этой теме я должен использовать 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' />
Таким образом, я могу отображать изображения.Но как я могу вставить изображение в базу данных?