读入二进制文件,
把它当作一个长字符串,
然后进行必要的字符转义
就可以插入数据了如果你想要把二进制数据插入到一个字符类型的字段中(例如BLOB),下列字符必须由转义序列表示: NUL
ASCII 0,你应该用 “\0”(一个反斜线和一个ASCII “0”字符)表示它。
\
ASCII 92,反斜线。需要用 “\\” 表示。
'
ASCII 39,单引号。需要用 “\'” 表示。
"
ASCII 34,双引号。需要用 “\"” 表示。 如果你写 C 代码,你可以使用 C API 函数mysql_real_escape_string() 来为 INSERT 语句转义字符。
把它当作一个长字符串,
然后进行必要的字符转义
就可以插入数据了如果你想要把二进制数据插入到一个字符类型的字段中(例如BLOB),下列字符必须由转义序列表示: NUL
ASCII 0,你应该用 “\0”(一个反斜线和一个ASCII “0”字符)表示它。
\
ASCII 92,反斜线。需要用 “\\” 表示。
'
ASCII 39,单引号。需要用 “\'” 表示。
"
ASCII 34,双引号。需要用 “\"” 表示。 如果你写 C 代码,你可以使用 C API 函数mysql_real_escape_string() 来为 INSERT 语句转义字符。
解决方案 »
- MySql-cluster中NDBD进程占用内存能否通过配置修改
- prepare中使用输出变量执行时报未定义错误
- C# 链接mySQl数据库 增加数据的问题。
- 请问字段名或表名可否出现/,怎么做到?
- java (linux mysql) 面做Batch insert很慢,20w条数据要10多分钟
- mysql的触发器大家都在什么情况下使用
- MySql: Forcing close of thread 1 user: 'root' 诊断
- mysql启动失败
- 使用“帝国备份王”恢复数据时出现问题,请高人指教。
- 验证字符串中是否包含身份证号码
- 怎样从mysql数据库中用c语言取得blob字段的值,fetch后,不知道怎样将数值放进文件中?
- 各位大侠,怎么在mysql里插入和获得blob类型的数据阿?
*end++ = '\'';
end += mysql_real_escape_string(&mysql, end,"What's this",11);
*end++ = '\'';
*end++ = ',';
*end++ = '\'';
end += mysql_real_escape_string(&mysql, end,"binary data: \0\r\n",16);
*end++ = '\'';
*end++ = ')';if (mysql_real_query(&mysql,query,(unsigned int) (end - query)))
{
fprintf(stderr, "Failed to insert row, Error: %s\n",
mysql_error(&mysql));
}
The strmov() function used in the example is included in the mysqlclient library and works like strcpy() but returns a pointer to the terminating null of the first parameter.
if((row=mysql_fetch_row(res))!=NULL)
{
strcpy(buf,row[0]);//不成功,段错误,
//len=sizeof(row[0]); //不成功,值为4
len=mysql_fetch_lengths(res); //不成功,数值太大,100M,
printf("\n the length is %i, len=%i",strlen(buf),len);
//fwrite(/*buf*/ row[0],1,len,fp);
各位大侠,应该怎样取得blob字段的值阿?救命阿!