我建了一个表,有两个字段,一个是自动编号的INT类型,一个是存入二进制的mediumblob类型,在PHP中,使用addslashes(fread(fopen($fp, "r"), $PSize))以二进制读取文件,然后$sql="INSERT INTO test (img_lr) VALUES ($img)"存入表,执行时没提示错误,可以打开表看并没有写入数据,为什么?

解决方案 »

  1.   

    本帖最后由 xuzuning 于 2012-12-14 10:08:20 编辑
      

  2.   

    open不妨用“b”参数,pack()也可以考虑使用另外就是版主说的问题
      

  3.   

    我是在PHPMYADMIN中打开的表,显示没有数据。
    OPEN有"b"参数吗?
      

  4.   

    fopen 有 b 参数,window 环境中一定要加
    可能是 mysql 版本的原因,的确有不少与你类似的问题
    有好几个 ascii 码值小于 32 的字符不能被 blob 接受。低版本的就没有问题变通的解决办法就是保存 base64 编码的数据