запись в базу MSSQL файлов

valerchik

Guest
запись в базу MSSQL файлов

каким образом можно записать файл в базу MSSQL
если можно с примерами, ато я уже просто в отчаянии
 

Breeze

goshogun
Команда форума
Партнер клуба
[m]file_get_contents[/m], например

а вообще файлы на то и файлы, чтобы на диске лежать, а не в базе
 

valerchik

Guest
ну а толку от file_get_contents ???
я хочу хранить не тексты файлов а реальные файлы.

-~{}~ 13.01.05 15:33:

каким макаром запихнуть в MSSQL

GIF89a
C╣"И▄gш( h2\┼.d╔2 ╢{ХтyдъП#кy╘Mt╥F*н4▓╛°╡мюЪ╡єйI╝%ЫхБ╚R┴)`╟0/пп  A
l═9~╓T║їп  !∙
L' {<4 OНЩ*
LОП3Ри#!

ругается, что такие кракозябли не может туда запихнуть
 

Breeze

goshogun
Команда форума
Партнер клуба
очень хорошо..

ругается.. и как ругается?
 

valerchik

Guest
Автор оригинала: Breeze
очень хорошо..

ругается.. и как ругается?
Line 1: Incorrect syntax near 'GIF89a'.

где все что в кавычках содержимое файла, вернее только его часть
 

valerchik

Guest
я и делаю выводы, надо конвертнуть во что-то, перед записью в базу. а потом при селекте обратно.

bin2hex($param)

а обратно как его ?
 

Breeze

goshogun
Команда форума
Партнер клуба
хе.. надо.. удвоить одинарные кавычки, если внутри них вставляешь, это MSSQL-аналог экранирования
 

valerchik

Guest
да удвоил я их.
ты что не понимаешь, что допустим картинка это полное барахло, если открыть в текстовом редакторе.
это барахло состоит из кучи символов которые не подходят MSSQL
в конце строки видал квадрат, это только цветочки...
эти символы просто не воткнешь туда так просто
 

valerchik

Guest
хорошо это или нет, это второй вопрос.
мой вопрос звучал иначе, а именно, как их там хранить.
вот

-~{}~ 13.01.05 17:21:

ты читал:
Пример на PHP загрузки картинки в поле image MSSQL
пробовал повторить эти магические действия ?
ну как работает...по-моему нет.
 

Breeze

goshogun
Команда форума
Партнер клуба
ссылку я тебе дал, дальше найти несложно
 

valerchik

Guest
ты просто думаешь что я просто не искал.
я искал, но реально нормлаьных, работающих примеров не нашел
 

Breeze

goshogun
Команда форума
Партнер клуба
и на php.net не нашел? даже в комментах к mssql_query?
 

valerchik

Guest
Автор оригинала: Breeze
и на php.net не нашел? даже в комментах к mssql_query?
общем, может я просто тебя недопонимаю.
если знаешь реальные ссылки чтоб посмотреть примеры...поделись, плиз :)
 

Breeze

goshogun
Команда форума
Партнер клуба
http://ru3.php.net/manual/ru/function.mssql-query.php

arnarb at oddi dot is
30-Apr-2003 01:16
If you'd like to store binary data, such as an image, in MSSQL, it's common to have problems with addslashes and co.

This is because the MSSQL parser makes a clear distinction between binary an character constants. You can therefore not easilly insert binary data with "column = '$data'" syntax like in MySQL and others.

The MSSQL documentation states that binary constants should be represented by their unquoted hexadecimal byte-string. That is.. to set the binary column "col" to contain the bytes 0x12, 0x65 and 0x35 you shold do "col = 0x126535" in you query.

I've successfully stored and retrieved jpeg images in a column with the "image" datatype. Here's how:

// storing a file
$datastring = file_get_contents("img.jpg");
$data = unpack("H*hex", $datastring);
mssql_query("insert into images (name, data)
values ('img.jpg', 0x".$data['hex'].")");

// retrieving
$result = mssql_query("select data from images where name = 'img.jpg'");
$row = mssql_fetch_assoc($result);
header("Content-type: image/jpeg;");
echo $row['data'];

As you can see there is nothing to do with the image on they way out, just blurb out the buffer your recieve as with any other field type.
 
Сверху