将数据指定为二进制的全部要点是简单地将二进制序列视为原始的,未触及的字节序列。
=>鉴于MySQL有BLOB,BINARY和VARBINARY数据类型,为什么不能从php脚本存储和检索任何二进制数据流而不需要使用mysql_real_escape_string或addslashes转义序列?
答案 0 :(得分:6)
因为二进制数据仍然序列化为字符串...例如,假设您的$binary_data
具有值a 'b" c
。然后查询INSERT INTO foo VALUES $binary_data
将失败。
答案 1 :(得分:3)
你错了。将数据指定为二进制的全部要点是简单地将二进制序列视为原始的,未触及的字节序列。
为什么不能从php脚本存储和检索任何二进制数据流而不需要使用mysql_real_escape_string或addslashes转义序列?
谁说这不可能?
存储和检索都很有可能
预处理语句的重点是将任意二进制流直接发送到mysql。
为什么在存储到MySQL数据库时需要将转义序列添加到二进制字符串?
如果你在谈论SQL,你必须先了解它是什么 SQL是一种编程语言 并且任何语言都有自己的语法 如果您要将原始二进制数据添加到此程序,则必须使此数据满足这些规则。这是逃避的。