mysql pdo查询语句,PHP PDO准备语句 – mysql LIKE查询
这是我的第一篇文章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查询相关推荐
- pdo mysql防注入_Php中用PDO查询Mysql来避免SQL注入风险的方法
当我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制.虽然可以用mysql_real_escape_ ...
- PHP+MySql+PDO实现简单增加、删除、修改、查询
最近学习中要使用PHP+MySql实现表单的增加.删除.修改.查询,看了很多简单案例后,写了一个简单的表单,下面请看代码,有错误的地方希望大佬们指教! 数据库名itcast , 表名emp_info ...
- mysql pdo 安全_使用PDO查询Mysql来避免SQL注入风险
当 我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失 去控制.虽然可以用mysql_real_escap ...
- in的绑定 mysql_MySQL IN语句的PDO绑定值
MySQL IN语句的PDO绑定值 我有一个PDO的问题,我很想在被它困扰很长一段时间后得到答案. 举个例子: 我将一个ID数组绑定到PDO语句,以便在MySQL IN语句中使用. 该数组将是:$ v ...
- Mysql学习总结(3)——MySql语句大全:创建、授权、查询、修改等
2019独角兽企业重金招聘Python工程师标准>>> 一.用户创建.权限.删除 1.连接MySql操作 连接:mysql -h 主机地址 -u 用户名 -p 用户密码 (注:u与r ...
- mysql查询语句判断日期_mysql语句查询时间检测
MySQL explain功能展示的各种信息的解释如下: id: MySQL Query Optimizer 选定的执行计划中查询的序列号. select_type: 所使用的查询类型,主要有以下这几 ...
- mysql sql 连接查询语句_Mysql——sql数据库中的连接查询
1.1.1 交叉连接(CROSS JOIN) 交叉连接(CROSS JOIN):有两种,显式的和隐式的,不带ON子句,返回的是两表的乘积,也叫笛卡尔积. 例如:下面的语句1和语句2的结果是相同的. ...
- MYSQL查询语句待优化_mysql语句查询优化
EXPLAIN select * from t_ma_lc_product_log where id =35404; EXPLAIN 跟需要查询的语句,然后判断优化. EXPLAIN列的解释: tab ...
- mysql查询子表的语句_MySQL基本SQL语句之单表查询、多表查询和子查询
一.简单查询: 1.基本语法: SELECT * FROM tb_name;//查询全部 SELECT field1,field2 FROM tb_name; //投影 SELECT [DISTINC ...
- mysql修改的值子查询语句_MySQL的SQL语句 - 数据操作语句(13)- 子查询(13)
子查询的限制 ● 通常,不能在子查询中修改表并从同一表中进行选择.例如,此限制适用于以下形式的语法: 1. DELETE FROM t WHERE ... (SELECT ... FROM t ... ...
最新文章
- oracle 快速复制一张表,并在此创建索引,日志及并行度
- Win10下使用Debug
- phpMyAdmin ‘tbl_gis_visualization.php’多个跨站脚本漏洞
- 1.请求安全-- MD5的必要性以及实际应用场景
- java事件 socket_java中有关socket通信的学习笔记
- 被小程序冲击的人,请正视小程序!
- Js面向对象学习之function
- webshell提权20种思路
- Windows7如何显示文件后缀
- 花生壳域名申请、内网映射到树莓派及与微信公众号对接
- 独立安装的黑莓模拟器的上网方法
- windows media player 服务器运行失败
- 一文带你了解影响因子IF和SCI分区
- 实战篇:手动编译安装微软 Linux 开源版 CBL-Mariner
- 基于PT2262/PT2272的4路遥控电路
- java 利用工具包Geotools实现不同坐标系之间坐标转换
- 盒子科技笔试Java_丰巢科技 Java高级笔试面试题 PDF 下载
- dedecms内容页调用栏目链接和栏目名称的方法
- Catch That Cow(抓住那头牛C++)
- 相关距离 matlab,你只有一个ArcGIS和Matlab的距离!