2013-08-09 2 views
2

У меня есть класс, расширяющий Phalcon \ Mvc \ Model, который включает в себя поле blob. Я в настоящее время с Phalcon 1.2.1.Как добавить данные о блобе в Phalcon Mvc Model

как читать данные? Я пробовал следующее:

ModelClass::findFirst(
    array(
    "name = :name: AND blob = :blob:", 
    "bind" => array(
     "name" => $name,"blob" => $base64 
    ) 
) 
) 

Я также не знаю, как написать блоб. но этот процесс должен быть равным.

«Работа с моделями» guide тоже мне не помогла.

+0

Это кажется ужасно неэффективно использовать все данные блобы при выполнении операции выбора. Если у вас есть файл изображения 100K, ваш запрос составляет 100K + и передается между вашим сервером и сервером базы данных. Не говоря уже о том, что хранение двоичных файлов в базе данных не является отличной идеей для начала. – Pickle

ответ

1

Я сам нашел ответ, проверив. Кажется, что Phalcon работает с такими же сырыми типами данных, как mysql. Например, нет логических значений. Вам нужно сохранить 0 или 1 для tinyint. Та же проблема с значениями blob. Вам необходимо пройти двоичную строку как:

$hex = "22aabb332299"; 
ModelClass::findFirst(
    array(
    "name = :name: AND blob = :blob:", 
    "bind" => array(
     "name" => $name,"blob" => pack("H*",$hex) 
    ) 
) 
) 

Это может быть не идеальный способ, но работал для меня, когда дело доходит до этой проблемы.

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

ModelClass::findFirst(
    array(
    "name = :name: AND blob = :blob:", 
    "bind" => array(
     "name" => $name,"blob" => file_get_contents($path) 
    ) 
) 
) 
Смежные вопросы