[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: MySql + Binary data
alex12060
У меня есть БД, вот её sql:


CREATE TABLE IF NOT EXISTS `files` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`path` varchar(255) DEFAULT NULL,
`data` blob,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;


Есть пхп код:


<?php
error_reporting(E_ALL);
$file = 'zamena.doc';
$hand = fopen($file, 'r') or die('Невозможно открыть файл');
$read = fread($hand, filesize($file)) or die('Невозможно считать файл');
//echo $read;
$cnct = mysql_connect('localhost', '---', '---') or die(mysql_error());
$db = mysql_select_db('zamena', $cnct) or die(mysql_error());
mysql_query('SET NAMES cp1251');
$sql = mysql_query("INSERT INTO `files` (`id`, `path`, `data`) VALUES ('null', '$read')") or die(mysql_error());
if (!$sql) { die('Ошибка запроса!') ; }
unset ($read);
fclose($file);
?>


Вроде норма, но при записи в БД выдает ошибку:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ьФ┴ ' at line 1


Что подскажете?)



Спустя 5 минут, 55 секунд (12.01.2011 - 14:56) linker написал(а):
mysql_escape_string() или base64_encode() (в последнем случае после получения данных надо сделать base64_decode())

Спустя 14 минут, 16 секунд (12.01.2011 - 15:11) alex12060 написал(а):
linker

Ага, помогло, записывает, но ведь при добавлении обработке он удалит то, что посчитает ненужным и из-за этого нарушится структура файла. Мне это не желательно, а точнее, загрузить загрузил файл, потом вывел его с помощью хедера, сохранил, но ворд не открывает...

Спустя 3 минуты, 4 секунды (12.01.2011 - 15:14) linker написал(а):
Кто удалит, что удалит? Там нет ничего, чтобы что-то удалялось.

Спустя 2 часа, 55 минут, 52 секунды (12.01.2011 - 18:10) alex12060 написал(а):
Факт в том, что теперь файлы не открывается..

Спустя 15 часов, 41 минута, 33 секунды (13.01.2011 - 09:51) linker написал(а):
Вполне вероятно, что грабли в кодировках. Но может поможет такой вариант
fopen($file, 'rb')
Вообще в мускуле хранить содержимое файлов - не ахти.

Спустя 2 дня, 4 часа, 50 минут, 35 секунд (15.01.2011 - 14:42) alex12060 написал(а):
Ну а что поделать?)
Админ гад открывать каталог не хочет на запись))

Спустя 8 минут, 3 секунды (15.01.2011 - 14:50) alex12060 написал(а):
Спасибо, я проглядел тип)
Блоб поставил, надо было лонг блоб)

Спасибо за то, что подсказал про mysql_escape_string()

Спустя 8 часов, 1 минута, 37 секунд (15.01.2011 - 22:51) Snus написал(а):
alex12060
Зачем тебе хранить файлы в БД?

Спустя 12 часов, 44 минуты, 17 секунд (16.01.2011 - 11:36) linker написал(а):
Snus
Для того и предназначен тип BLOB.

Спустя 6 минут, 5 секунд (16.01.2011 - 11:42) Snus написал(а):
linker
Я знаю для чего предназначен тип BLOB, вопрос был адресован не тебе. Мне интересно мнение автора.

Спустя 1 день, 8 часов, 1 минута, 31 секунда (17.01.2011 - 19:43) alex12060 написал(а):
За тем, что бяка админ не открывает мне доступ на запись в серв.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.