【问题标题】:How to add blob data to Phalcon\Mvc\Model如何将 blob 数据添加到 Phalcon\Mvc\Model
【发布时间】:2013-08-09 18:09:36
【问题描述】:

我有一个扩展 Phalcon\Mvc\Model 的类,其中包含一个 blob 字段。我目前正在使用 Phalcon 1.2.1。

我如何读取数据?我尝试了以下

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

我也不知道如何写 blob。但这个过程应该是平等的。

“与模型合作”guide 也没有帮助我。

【问题讨论】:

  • 在进行选择时使用完整的 blob 数据似乎非常低效。如果您有一个 100K 的图像文件,那么您的查询是 100K+ 并且在您的 Web 和数据库服务器之间传递。更不用说,将二进制文件存储在数据库中并不是一个好主意。

标签: php model blob phalcon


【解决方案1】:

我自己通过测试找到了答案。 Phalcon 似乎可以使用与 mysql 相同的原始数据类型。例如,没有布尔值。您需要为 tinyint 存储 0 或 1。与 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)
    )
  )
)

【讨论】:

    猜你喜欢
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多