php – 防止SQL注入数据库类
我正在构建一个数据库类,并认为合并某种形式的SQL注入预防是个好主意(呃!).这是运行数据库查询的方法:
课堂上还有更多,但我只是因为这个而削减它.我面临的问题是如果我只使用mysql_real_escape_string($sql,$this-> link);然后它会转义整个查询并导致SQL语法错误.如何动态查找需要转义的变量?我想避免在我的主代码块中使用mysql_real_escape_string(),我宁愿在函数中使用它. 谢谢. 最佳答案 问题是,当你构建一个SQL查询时,通过查找变量来防止注入为时已晚 – 否则它已经内置到PHP中.在构建查询时,需要更早地进行转义.您可以使用查询构建类. 但是,我建议采用不同的方法 – 这是一个提供数据库表作为对象的层,这里是一个示例user object,它是从base db entity class派生的,它提供了使用active record pattern和iterator pattern的数据库的完整接口. 我将通过一些例子说明这一点;这里整洁的东西是迭代器,因为你可以抽象出更多,并在线上提供一些非常通用的类来提取数据. 使用上述方法创建用户记录:
要读取用户记录:
迭代记录:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Mysql必读完全卸载mysql(停止服务、卸载相关程序、删除注册
- Mysql必读使用mss2sql工具将SqlServer转换为Mysql全记录
- php – 如何在Yii框架中使用mysql_escape_string()?
- php – 如何将行数组传递给PDO以插入它们?
- Mysql入门mysql Key_buffer_size参数的优化设置
- 如何从mysql PHP显示图像
- Mysql应用mysql 查看版本的方法图文演示
- MYSQL数据库mysql query browser中文乱码的解决方法
- Mysql实例mysql select语句操作实例
- Mysql必读mysql innodb的监控(系统层,数据库层)
- MYSQL数据库Linux下mysql的root密码修改方法
- Mysql时间戳转成常用可读格式的修改方法
- macbook 安装mysql,提醒mysql:command not fon
- Mysql入门mysql 服务意外停止1067错误解决办法小
- Mysql必读linux下 root 登录 MySQL 报错的问题
- mysql – Laravel 5.1雄辩的关系模型 – 如何更
- MYSQL教程安装MySQL后include目录下没有找到libm
- php – 我可以编写自己的mySQL函数用于mySQL查询
- MYSQL教程MySQL学习笔记之创建、删除、修改表的方
- Mysql必读mysql忘记密码怎么办(windows linux)