这是我的第一篇文章Overflow,但我发现现有的知识体系非常有帮助。无论如何,这里是我的问题:

我试图做一个搜索通过php的PDO类(mysql驱动程序)。我有以下查询使用mysql客户端(表名改为保护无辜):

SELECT hs.hs_pk,

hs.hs_text,

hs.hs_did,

hd.hd_did,

hd.hd_text,

hv.hv_text,

hc.hc_text

FROM hs

LEFT JOIN hd

ON hs.hs_did = hd.hd_did

LEFT JOIN hd

ON hd.hd_vid = hv.hv_id

LEFT JOIN hc

ON hd.hd_pclass = hc.hc_id

WHERE hs.hs_text LIKE "%searchTerm%"

LIMIT 25;

无论我使用的搜索字词,这都像一个魅力。但是,当我搬到php,我不能让它返回任何东西。我试过几种不同的语法,似乎合乎逻辑的工作,但没有我试过的工作。这里是我现有的代码:

$handle = fopen('/foo/bar/test.log', 'w+');

fwrite($handle, "doSearch, with search term: $searchTerm\n");

$sql =

'SELECT hs.hs_pk,

hs.hs_text,

hs.hs_did,

hd.hd_did,

hd.hd_text,

hv.hv_text,

hc.hc_text

FROM hs

LEFT JOIN hd

ON hs.hs_did = hd.hd_did

LEFT JOIN hd

ON hd.hd_vid = hv.hv_id

LEFT JOIN hc

ON hd.hd_pclass = hc.hc_id

WHERE hs.hs_text LIKE :searchTerm

LIMIT 25';

try {

$dbh = new PDO('mysql:host=localhost;dbname=awdb', "user", "password");

fwrite($handle, "connected to DB\n");

$prep = $dbh->prepare($sql);

$ret = $prep->execute(array(':searchTerm' => '"%'.$searchTerm.'%"'));

while ($row = $prep->fetch(PDO::FETCH_ASSOC)) {

$i++;

$result[$i]['subText'] = $row['hs_pk'];

$result[$i]['subText'] = $row['hs_text'];

$result[$i]['subDid'] = $row['hs_did'];

$result[$i]['devDid'] = $row['hd_did'];

$result[$i]['devText'] = $row['hd_text'];

$result[$i]['vendorText'] = $row['hv_text'];

$result[$i]['classText'] = $row['hc_text'];

}

$dbh = null;

}

catch (PDOException $e) {

print "Error!: " . $e->getMessage() . "
";

die();

}

我也试过以下(SQL WHERE子句和amp; prep->执行行都是改变):

WHERE hs.hs_text LIKE CONCAT(\'%\', ?, \'%\')

$ret = $prep->execute(array($searchTerm));

WHERE hs.hs_text LIKE "%:searchTerm%"

$ret = $prep->execute(array(':searchTerm' => $searchTerm));

WHERE hs.hs_text LIKE ":searchTerm"

$ret = $prep->execute(array(':searchTerm' => '%'.$searchTerm.'%'));

等等…

谢谢提前,我希望代码不太太草率

– 时间

mysql pdo查询语句,PHP PDO准备语句 – mysql LIKE查询相关推荐

  1. pdo mysql防注入_Php中用PDO查询Mysql来避免SQL注入风险的方法

    当我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制.虽然可以用mysql_real_escape_ ...

  2. PHP+MySql+PDO实现简单增加、删除、修改、查询

    最近学习中要使用PHP+MySql实现表单的增加.删除.修改.查询,看了很多简单案例后,写了一个简单的表单,下面请看代码,有错误的地方希望大佬们指教! 数据库名itcast , 表名emp_info ...

  3. mysql pdo 安全_使用PDO查询Mysql来避免SQL注入风险

    当 我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失 去控制.虽然可以用mysql_real_escap ...

  4. in的绑定 mysql_MySQL IN语句的PDO绑定值

    MySQL IN语句的PDO绑定值 我有一个PDO的问题,我很想在被它困扰很长一段时间后得到答案. 举个例子: 我将一个ID数组绑定到PDO语句,以便在MySQL IN语句中使用. 该数组将是:$ v ...

  5. Mysql学习总结(3)——MySql语句大全:创建、授权、查询、修改等

    2019独角兽企业重金招聘Python工程师标准>>> 一.用户创建.权限.删除 1.连接MySql操作 连接:mysql -h 主机地址 -u 用户名 -p 用户密码 (注:u与r ...

  6. mysql查询语句判断日期_mysql语句查询时间检测

    MySQL explain功能展示的各种信息的解释如下: id: MySQL Query Optimizer 选定的执行计划中查询的序列号. select_type: 所使用的查询类型,主要有以下这几 ...

  7. mysql sql 连接查询语句_Mysql——sql数据库中的连接查询

    1.1.1   交叉连接(CROSS JOIN) 交叉连接(CROSS JOIN):有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积,也叫笛卡尔积. 例如:下面的语句1和语句2的结果是相同的. ...

  8. MYSQL查询语句待优化_mysql语句查询优化

    EXPLAIN select * from t_ma_lc_product_log where id =35404; EXPLAIN 跟需要查询的语句,然后判断优化. EXPLAIN列的解释: tab ...

  9. mysql查询子表的语句_MySQL基本SQL语句之单表查询、多表查询和子查询

    一.简单查询: 1.基本语法: SELECT * FROM tb_name;//查询全部 SELECT field1,field2 FROM tb_name; //投影 SELECT [DISTINC ...

  10. mysql修改的值子查询语句_MySQL的SQL语句 - 数据操作语句(13)- 子查询(13)

    子查询的限制 ● 通常,不能在子查询中修改表并从同一表中进行选择.例如,此限制适用于以下形式的语法: 1. DELETE FROM t WHERE ... (SELECT ... FROM t ... ...

最新文章

  1. oracle 快速复制一张表,并在此创建索引,日志及并行度
  2. Win10下使用Debug
  3. phpMyAdmin ‘tbl_gis_visualization.php’多个跨站脚本漏洞
  4. 1.请求安全-- MD5的必要性以及实际应用场景
  5. java事件 socket_java中有关socket通信的学习笔记
  6. 被小程序冲击的人,请正视小程序!
  7. Js面向对象学习之function
  8. webshell提权20种思路
  9. Windows7如何显示文件后缀
  10. 花生壳域名申请、内网映射到树莓派及与微信公众号对接
  11. 独立安装的黑莓模拟器的上网方法
  12. windows media player 服务器运行失败
  13. 一文带你了解影响因子IF和SCI分区
  14. 实战篇:手动编译安装微软 Linux 开源版 CBL-Mariner
  15. 基于PT2262/PT2272的4路遥控电路
  16. java 利用工具包Geotools实现不同坐标系之间坐标转换
  17. 盒子科技笔试Java_丰巢科技 Java高级笔试面试题 PDF 下载
  18. dedecms内容页调用栏目链接和栏目名称的方法
  19. Catch That Cow(抓住那头牛C++)
  20. 相关距离 matlab,你只有一个ArcGIS和Matlab的距离!

热门文章

  1. 异步组件及withRouter路由方法的使用
  2. Android EXIF
  3. 云服务器流量是什么东西_云服务器1g流量能用多久
  4. mysql 5.6 federated_Mysql 开启Federated引擎以及使用
  5. 简单易用的运动控制卡(十):连续插补和小线段前瞻
  6. 虚拟机扩容——LVM分区
  7. JPG格式图片怎么弄?分享两种转换图片格式方法
  8. JSON兼容IE7及以下
  9. 【巨杉访谈】分布式数据库如何实现海量数据实时查询
  10. 谁动了我的奶酪:奶酪墙上的话 ----- 整理完整篇