PHP PDO MySQL LIKE %Q%模糊查询实例

2017年05月06日 16:46   站长学院   PHP  MySQL  

最近一直在搞新网站萝莉图(luolitu.com),在制作图片搜索功能时需要用到
MySQL LIKE %Q% 模糊查询功能,下面是操作实例记录一下。

例如用户搜索关键词“巨乳”通常是访问 search.php?q=巨乳 ,然后PHP 通过获取参数 q=xxx 取得关键词。

PHP 面向对象编程

接下来,就应该是生成 SQL查询语句了,MySQL 查询语句应该是
'SELECT * FROM `pre_tupian` WHERE `title` LKIE "%巨乳%" LIMIT 10;'

使用 LIKE %巨乳% 作为查询条件能够匹配出
巨乳萝莉赵小米
美女易阳大秀巨乳
模特于姬巨乳翘臀诱惑
等等标题中包含关键词“巨乳”的图集。

但已经不推荐使用这种MySQL查询方法,原因是不安全容易被SQL注入攻击,下面说说更安全的查询方法 pdo 预处理

使用 PHP PDO 预处理 SQL语句后再执行能有够防范 SQL注入攻击,查询语名有一些小改变,如下:

$sql = 'SELECT * FROM `pre_tupian` WHERE `title` LIKE ? LIMIT 10; '

使用占位符 ? 来取代 “%巨乳%”, 然后通过 PDO 预处理传入参数后查询,例如

mysql::finds($sql, array("%{$q}%") )

这样就能够防止被 SQL注入,因为 mysql::finds() 函数使用PDO预处理方法执行, php pdo prepare() 对传入的参数进入了安全过滤,这是非常安全的查询方法。

我们在制作搜索功能时通常会传入“字符串”类型的参数,对于外部传入的参数一定在做好过滤防止被SQL注入攻击。

相关阅读

PHP PDO操作MySQL也会导致SQL注入
【实例】PHP & MySQL 日期时间存取
MySQL优化查询实现100万数据快速分页
PHP 实现 Session 存入MySQL / Redis
MySQL prepare IN() 使用预定义变量出错
PHP 验证码插件 captcha 使用实例
MySQL 开启支持全文索引的方法
PHP 框架 CodeIgniter 数据库操作
PHP 循环制作输出多列表格实例教程
PHP单例模式:代码示例+学习笔记
PHP 防范文件上传漏洞
PHP 无法读取七牛云图片的解决办法