Php 在MySQL数据库中存储base64编码值的最佳方法?

Php 在MySQL数据库中存储base64编码值的最佳方法?,php,mysql,database,base64,Php,Mysql,Database,Base64,我想在数据库中存储一个值,排序规则对这样的字符串有什么影响吗 YToyOntzOjIwOiJUeXBlX29mX29yZ2FuaXNhdGlvbiI7czoyMDoiTWVtYmVyIG9mIFBhcmxpYW1lbnQiO3M6ODoiUG9zdGNvZGUiO3M6NzoiUEUxIDFKQSI7fQ== 可能会被储存?此外,我似乎能够将这些值写入DB的唯一方法是使用BLOB这似乎是一种非常错误的存储方式 排序规则仅在您需要按排序或搜索列时起作用。这些base64编码的项目可能不会被搜索或

我想在数据库中存储一个值,排序规则对这样的字符串有什么影响吗

YToyOntzOjIwOiJUeXBlX29mX29yZ2FuaXNhdGlvbiI7czoyMDoiTWVtYmVyIG9mIFBhcmxpYW1lbnQiO3M6ODoiUG9zdGNvZGUiO3M6NzoiUEUxIDFKQSI7fQ==

可能会被储存?此外,我似乎能够将这些值写入DB的唯一方法是使用
BLOB
这似乎是一种非常错误的存储方式

排序规则仅在您需要按排序或搜索列时起作用。这些base64编码的项目可能不会被搜索或排序

如果保证编码项的长度小于64K字节,请按如下方式定义列:

   `columnname` TEXT CHARACTER SET ascii,
这正是base64编码变量所需要的;编码过程将所有内容转换为可显示的ASCII

如果项目长度小于16 MB,但有些项目长度超过64k,请使用
MEDIUMTEXT
而不是
TEXT

几年后编辑

OQ编码字符串已解码,是一个序列化的php对象:

a:2:{s:20:"Type_of_organisation";s:20:"Member of Parliament";s:8:"Postcode";s:7:"PE1 1JA";}
观察1:这些东西很多都存储在文本列中,而不使用utf8或utf8mb4字符集进行编码。太多了?对WordPress以这种方式存储选项数据


观察2:如果可以将其转换为JSON,则可以在最新版本的MySQL中使用JSON数据类型。JSON搜索仍然不是可搜索的,但它们是结构化的。

既然已经是base64,为什么不只是CHAR/VARCHAR?BINARY、VARBINARY和BLOB是存储(非base64编码)二进制数据的合适方式(具体取决于)。因为它看起来是一个很小的值,所以我建议使用BINARY vs.BLOB.brilliant,因为某些原因,我不认为使用BINARY!:)啊,有时候我喜欢把贴在网上的东西解码。请注意,使用这种结构,从中正确查询某些数据会很麻烦。@JamieHutber,是否有必要
base64
ing您的数据?数据字符串的长度较长且不可查询(如上所述)。我只是好奇,不是苛求。@TheFrost我更关心,因为它解码时看起来像JSON。这是一个SQL反模式。