sql语句如何处理特殊字符 我jsp的代码 比如在String sql是这样的 "select c&w from table "+ 可是总在这里报错 我觉得是 &字符的问题 请问怎么处理 我用的是mysql 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用转义,mysql有专门的转义函数:mysql_real_escape_string 20.4.13 mysql_escape_string()unsigned int mysql_escape_string(char *to, const char *from, unsigned int length) 20.4.13.1 说明把在from中的字符串编码为在一条SQL语句中可以发给服务器的转义的SQL字符串,将结果放在to中, 并且加上一个终止的空字节。编码的字符是NUL(ASCII 0)、‘\n’、‘\r’、‘\’、‘'’、‘"’和Control-Z(见7.1 文字:如何写字符串和数字)。由from指向的字符串必须是length个字节长。你必须分配to的缓冲区至少length*2+1个字节长。(在更坏的情况,每个字符可能需要使用2个字节被编码,并且你需要为终止空字节的空间) 当mysql_escape_string()返回时,to的内容将是空字符终止的字符串。返回值是编码后的字符串的长度,不包括终止空字符。 20.4.13.2 范例char query[1000],*end;end = strmov(query,"INSERT INTO test_table values(");*end++ = '\'';end += mysql_escape_string(end,"What's this",11);*end++ = '\'';*end++ = ',';*end++ = '\'';end += mysql_escape_string(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));}例子中所用的strmov()函数被包括在mysqlclient库中且功能类似于strcpy(),但是返回一个指向空终止的第一个参数的指针。 20.4.13.3 返回值放进to的值的长度,不包括终止空字符。20.4.13.4 错误无。 商品订单的数据库建表 一个关于游标的问题 求助!XAMPP for Linux 1.7.4,关于mysql一个问题 求一款支持win的检测主从同步延迟、主从数据是否一致等功能的工具 排行榜的问题,如果设置榜单排名? query_cache_size是否应该禁用? 求一个思路 mysql 30 天的试用期? 怎么得到某字段最大的记录.在线等待,当场结分. mysql8.0 安装疑问:partition MySQL自定义函数问题?高手请帮忙 高手来看看。想了三天没搞定的查询语句
unsigned int mysql_escape_string(char *to, const char *from, unsigned int length) 20.4.13.1 说明
把在from中的字符串编码为在一条SQL语句中可以发给服务器的转义的SQL字符串,将结果放在to中, 并且加上一个终止的空字节。编码的字符是NUL(ASCII 0)、‘\n’、‘\r’、‘\’、‘'’、‘"’和Control-Z(见7.1 文字:如何写字符串和数字)。由from指向的字符串必须是length个字节长。你必须分配to的缓冲区至少length*2+1个字节长。(在更坏的情况,每个字符可能需要使用2个字节被编码,并且你需要为终止空字节的空间) 当mysql_escape_string()返回时,to的内容将是空字符终止的字符串。返回值是编码后的字符串的长度,不包括终止空字符。 20.4.13.2 范例
char query[1000],*end;end = strmov(query,"INSERT INTO test_table values(");
*end++ = '\'';
end += mysql_escape_string(end,"What's this",11);
*end++ = '\'';
*end++ = ',';
*end++ = '\'';
end += mysql_escape_string(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));
}例子中所用的strmov()函数被包括在mysqlclient库中且功能类似于strcpy(),但是返回一个指向空终止的第一个参数的指针。 20.4.13.3 返回值
放进to的值的长度,不包括终止空字符。20.4.13.4 错误
无。