众所周知,我们将使用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'字面意思,这似乎很好,但时间和代码消耗。有没有其他更简单的方法?
提前致谢。