如何在MySQL表中存储php对象?

nkc*_*cmr 8 php mysql object

我已经设置了一个只有一个字段用于BLOB(二进制大对象)的表,但是当我尝试将其插入表中时,它会抛出一个错误,指出它无法将对象转换为字符串.这是我的查询:

mysql_query("INSERT INTO objects (inquery) VALUES($inquery)");
Run Code Online (Sandbox Code Playgroud)

Thi*_*ter 20

序列化:

$str = serialize($object);
Run Code Online (Sandbox Code Playgroud)

如果你的对象包含私有/受保护字段,base64_encode()那么序列化对象也是一个好主意,因为这些属性将导致使用ascii-1字符,这会在手动编辑列时中断,例如使用phpMyAdmin.

要恢复您的对象,只unserialize()需要字符串(base64_decode()如果需要,可以使用它).

  • 但要小心,并非所有的php对象都可以序列化.资源(db连接,http连接等)不能.见http://www.php.net/manual/en/function.serialize.php (4认同)
  • `$object = 反序列化($str);` (2认同)