使用 HYDRATE_NONE 时 MySQL 文本字段开头的字符串长度?
我正在使用 Symfony 1.4 和 Doctrine。
我将文本作为 MySQL 文本类型(Doctrine“数组”类型)保存到数据库中,并将其放入 clean & 中。正确的。
当查询回数据时,如果我使用 Doctrine_Core::HYDRATE_ARRAY ,数据将按应有的方式返回。但是,如果我使用 HYDRATE_NONE,则会返回数据并附加文本长度:
S:45"this is some text from the database" // where "45" is the length.
这是预期的行为还是我可能定义了错误的类型?
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您看到的文本是数组的序列化形式。如果您选择不进行水合,您将获得序列化形式,因为 Doctrine 将数组转换为序列化形式,以便将其存储在 MySQL 的
TEXT
列中。 PHP 的 序列化/反序列化函数对应该提供 Doctrine 使用的过程类型的示例。The text you are seeing is the serialized form of the array. If you choose not to hydrate, you will get the serialized form, as Doctrine converts the array into a serialized form in order to store it in a
TEXT
column in MySQL. PHP's serialize/unserialize function pairs should provide an example of the type of process used by Doctrine.