【问题标题】:Saving byteArray to BLOB on mySQL gets error 'You have an error in your SQL syntax'在 mySQL 中将字节数组保存到 BLOB 时出现错误“您的 SQL 语法有错误”
【发布时间】:2013-01-30 01:24:03
【问题描述】:

我正在尝试通过 amfphp 从 as3 项目中保存 jpg 的 byteArray,然后使用 php/mySQL 将其保存到我数据库上的 BLOB 中。这是我的php函数

function saveImage($uid, $name, $tag1, $tag2, $tag3, $ba) {
        $result = mysql_query("INSERT INTO images (uid,name,tag1,tag2,tag3,thumb) VALUES ('$uid','$name','$tag1','$tag2','$tag3','$ba->data');");

        $error = mysql_error();
        if ($error) {
            return $error;
        }
        else {
            return $result;
        }
    }

但我不断收到此错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄ' at line 1

关于如何解决此问题的任何建议?

【问题讨论】:

  • 尝试在二进制数据变量上添加斜杠。添加斜线($变量)
  • 不,对查询中的所有变量使用mysql_real_escape_string。或者更好的是,根本不要使用 mysql_ 函数,因为它们很快就会被删除(参见:stackoverflow.com/questions/13944956/…
  • 嘿@VahidFarahmand 成功了!谢谢!如果您将评论添加为答案,我会标记它。谢谢!
  • 不客气,很高兴我能帮上忙。感谢投票:)

标签: php mysql actionscript-3 bytearray amfphp


【解决方案1】:

为了将来参考,如果你想将二进制文件保存到 mysql 中的 blob 单元格,你可以使用addslashes 函数到你的数据中,比如:

addslashes($blob_data);

工作代码示例位于此处:尝试在二进制数据变量上添加斜杠。添加斜杠($变量)

【讨论】:

  • 嘿,希望真的快,你知道如何读回来吗?你可以把它放在答案中。我尝试了类似$img = new ByteArray(stripslashes($row['thumb'])); 的方法,但运气不好,我没有得到任何回报
  • 您好,感谢您回来。我刚刚尝试了你的建议,但我没有任何运气,你介意快速看看我在上面的问题中发布的内容吗?
  • 在从 db 获取数据后立即进行一些调试,例如打印 $img 变量。检查该变量是否有任何内容,还使用命令行连接到 mysql 并从 mysql 中选择数据并查看它是否包含数据或导出您的数据库并查看您的单元格中是否有任何数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-08
  • 1970-01-01
  • 2012-10-10
  • 1970-01-01
  • 2023-03-28
相关资源
最近更新 更多