mysql_real_escape_string()--mysql数据库
来源:互联网 发布:网络培训平台 编辑:程序博客网 时间:2024/05/30 23:54
1. 函数原型
unsigned long mysql_real_escape_string(MYSQL *mysql, char *to, const char *from, unsigned long length)
注意:
使用时,mysql必须是有效的开放式连接。
因为,转义功能取决于服务器使用的字符集。
2. 描述
该函数用于创建可在SQL语句中使用的合法SQL字符串。
按照连接的当前字符集,将“from”中的字符串编码为转义SQL字符串。
将结果置于“to”中,并添加1个终结用NULL字节。
编码的字符为NUL (ASCII 0)、‘\n’、‘\r’、‘\’、‘’’、‘”’、以及Control-Z。
(严格地讲,MySQL仅需要反斜杠和引号字符,用于引用转义查询中的字符串。该函数能引用其他字符,从而使得它们在日志文件中具有更好的可读性)。
“from”指向的字符串必须是长度字节“long”。必须为“to”缓冲区分配至少length*2+1字节。
在最坏的情况下,每个字符或许需要使用2个字节进行编码,而且还需要终结Null字节。
当mysql_real_escape_string()返回时,“to”的内容是由Null终结的字符串。
返回值是编码字符串的长度,不包括终结用Null字符。
如果需要更改连接的字符集,应使用mysql_set_character_set()函数,而不是执行SET NAMES (或SET CHARACTER SET)语句。mysql_set_character_set()的工作方式类似于SET NAMES,但它还能影响mysql_real_escape_string()所使用的字符集,而SET NAMES则不能。
3. 示例
char query[1000],*end;end = strmov(query,"INSERT INTO test_table values(");*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));}
注意:该示例中使用的strmov()函数包含在mysqlclient库中,工作方式与strcpy()类似,但会返回指向第1个参数终结用Null的指针。
参考来源:
http://www.cppblog.com/woaidongmao/archive/2009/08/13/93154.html
- MySql数据库--mysql_real_escape_string()函数
- mysql_real_escape_string()--mysql数据库
- mysql_real_escape_string函数预防数据库攻击。
- MYSQL mysql_real_escape_string和addslashe区别
- mysql_real_escape_string()
- mysql_real_escape_string()
- mysql_real_escape_string
- PHP mysql_real_escape_string() 函数预防数据库攻击
- PHP mysql_real_escape_string() 函数防止数据库攻击
- 预防数据库攻击的正确做法 mysql_real_escape_string
- addslashes和mysql_real_escape_string防mysql注入
- 预防数据库攻击的PHP函数一例子 mysql_real_escape_string()
- php 防mysql注入函数 addslashes和mysql_real_escape_string
- yii2随笔(五):mysql 防注入 实现 mysql_real_escape_string 功能
- mysql_real_escape_string(),mysql_escape_string()
- mysql_real_escape_string()详解
- 关于PHP mysql_real_escape_string() 函数对数据库的保护作用 ,预防数据库被攻击的一种手段
- PHP 安全手册 第五条 输出转义 最好的MYSQL 转义函数 mysql_real_escape_string
- Flask学习笔记02--Flask基本结构
- 软件功能测试UFT篇
- 如果用Servlet做文件下载的话,当用户中途取消了下载那么Servlet是会继续向用户传送没有传送完的文件还是Servlet会自动关闭当前线程?
- iOS 苹果官方Demo合集
- 【离散数学】【改进版】实验二 集合上二元关系性质判定的实现
- mysql_real_escape_string()--mysql数据库
- CentOS + Tomcat 请配置 JRE_HOME 环境变量
- IOS(Simulator)模拟器切换横竖屏的快捷键
- c++ primer第五版(中文)习题答案 第十章第四节第二小节-iostream迭代器
- Android 开发中的日常积累
- WEB前端学习论坛整理
- 数据结构 单链表实现前插、后插、前删、后删、显示、查找等等
- TCP/IP协议、Http协议、ftp协议
- JS调试方法