Gudi
Новичок
Бинарные файлы в MySQL
Добрый день!
Задача - запись и выгрузка бинарного файла на MySQL при помощи PHP.
Записываю файл вот так:
Выгружаю файл вот так:
Файл выгружается, но размер разный. Я думаю что проблема в функции mysql_real_escape_string, которая экранирует специальные символы чтобы можно было данные добавить в базу! Проблема в том что не получается "разэкранировать" данные обратно. Соответственно файлы выгружаются "битыми".
Как мне решить эту проблему?
ЗЫ. Мне не надо хранить файлы в директориях, а в базе держать на них ссылки. Мне нужно именно реализовать хранение бинарных файлов в MySQL.
Зарание спасибо!
Добрый день!
Задача - запись и выгрузка бинарного файла на MySQL при помощи PHP.
Записываю файл вот так:
PHP:
$myFileName=$_FILES['myfile']['name'];
$f=fopen($myfile,"rb");
$upload=fread($f,filesize($myfile));
fclose($f);
$upload=mysql_escape_string($upload);
$dbName = "firms"; $dbTable = "contract";
$conn = @mysql_connect("localhost", "******", "******") or die ("Невозможно подключиться к MySQL");
$selectDB = @mysql_select_db($dbName, $conn) or die ("Невозможно выбрать базу данных.");
$query = "INSERT INTO $dbTable (IDFirm, textDogovor, nameDogovor, opisDogovor) VALUES (\"$firm\", \"$upload\", \"$myFileName\", \"$opisDogovor\")";
$result = mysql_query($query, $conn) or die ("Невозможно выполнить запрос!".mysql_error()); mysql_close($conn)
PHP:
$dbName = "firms"; $dbTable = "contract";
$conn = @mysql_connect("localhost", "******", "******") or die ("Невозможно подключиться к MySQL");
$selectDB = @mysql_select_db($dbName, $conn) or die ("Невозможно выбрать базу данных.");
$sql1 = "SELECT contract.nameDogovor, contract.textDogovor FROM firms.contract where contract.IDDogovor=$IDDogovor";
$nameDogovor = mysql_query($sql1, $conn) or die ("Невозможно выполнить запрос 1!".mysql_error());
$row = mysql_fetch_row($nameDogovor);
$fd = fopen("D:/WWW/home/localhost/WWW/TEMP/$row[0]","w");
if(!$fd) exit("Ошибка открытия файла");
fwrite($fd,$row[1]);
fclose($fd);
Как мне решить эту проблему?
ЗЫ. Мне не надо хранить файлы в директориях, а в базе держать на них ссылки. Мне нужно именно реализовать хранение бинарных файлов в MySQL.
Зарание спасибо!