将二进制字符串插入MYSQL varchar列

时间:2014-04-15 09:04:02

标签: mysql

众所周知,我们将使用mysql_query api向服务器发送查询,并通过字符串作为参数传递查询。我们将不得不在spqlf等一些C函数调用的mysql_query之外制定字符串。例如,

sprintf(buffer, “insert into table(describe) values(‘%s’)”, strA);
mysql_query(..., buffer);

The ‘describe’ is a VARCHAR(150).

在某些特殊情况下,我们的一个函数会将几个C样式的字符串写入一个长的字符串,保留所有结尾的'\ 0'以形成二进制,即以C形式捕获“abc”和“efg”为“abc” \ 0efg \ 0“,当然是给调用者的长度(在这种情况下,它是8)。但是,out二进制文件永远不能在sprintf中用作strA,因为C函数将通过满足第一个'\ 0'来截断字符串。

我们能做些什么来满足我们的需求吗?我们希望将二进制文件插入到定义为VARCHAR的列中。我们试图将所有'\ 0'改为'\ 0'字面意思,这似乎很好,但时间和代码消耗。有没有其他更简单的方法?

提前致谢。

1 个答案:

答案 0 :(得分:0)

你应该使用mysql_real_escape_string()来逃避这个字符串。