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 错误无。 请问怎样设计用户权限管理? 求sql语句合并数据行, mysql_store_result()函数卡住不返回 视图问题,同一个字段根据不同条件显示2次 mysql 存储过程 问题 千万量级数据要在十几秒内返回如何做? mysql 面试题 请帮我看看这样的压力算不算大 线程调用mysql api的问题 postgresql中大量插入数据出现错误,请教.... 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 错误
无。