PHP 板


LINE

看板 PHP  RSS
※ 引述《uWay (我的极限就到这里)》之铭言: : ※ 引述《rjackie (向前走,才知道转角)》之铭言: : : 各位先进 小弟有一事想要请教各位大大 : : 因目前专案有一功能是需要LIKE多组字串,以下程式 : 先问一下,需要LIKE多组字串的功能是? : : $p_search = explode(" ",$p_search_name); : : $product_info_sql = $db->prepare("SELECT no FROM product_info : : where name LIKE '%".$p_search_name."%' "); : : foreach($p_search as $k){ : : $product_info_sql = $db->prepare( " OR name LIKE '%$k%' "); : : } : : $product_info_sql = $db->prepare(" AND status = ? order by sequence : : DESC limit " . $startRow_records . ",$pageRow_records"); : : $product_info_sql->execute(array('1')); : : 主要是判断有几组字串(关键字),产生多组OR name LIKE : : 但是PDO好像不能这样用,还想请大大们解惑 : : 万分感谢 : 或许可以用concat('column') LIKE '%keyword%'的方式去实作你要的功能? : 我自己的做法是, : foreach 读出 keyword_Arr, : 每次回圈去串SQL子句,最後再query : 给你参考 感谢各位的指导,目前已解决多空格搜寻的功能,可以正常的捞到资料。 但往往事情都没有这麽简单,因为专案需要同时搜寻不同的栏位与资料 表,以下为目前的程式, <?php $keys = explode(" ",$_GET['p_search']); $term = "%".$_GET['p_search']."%"; foreach ($keys as $word) { $search_name[] = 'product_info.name LIKE ?'; $search_summary[] = 'product_info.summary LIKE ?'; $search_model[] = 'product_standard_data.model LIKE ?'; $arguments[] = '%'.$word.'%'; } $product_info_auto_sql = $db->prepare(" SELECT product_info.name FROM product_info,product_standard_data WHERE product_info.no = product_standard_data.product_no AND ".implode(' AND ', $search_name)." OR ".implode(' AND ', $search_summary)." OR ".implode(' AND ', $search_model)." AND product_info.status = '1' GROUP BY product_info.name order by product_in fo.sequence DESC, product_info.name DESC"); $product_info_auto_sql->execute($arguments); while($product_info_auto_row = $product_info_auto_sql->fetch()){ echo $product_info_auto_row['name']; } ?> 问题在於无法在execute的时候会发生 Invalid parameter number: number of bound variables does not match number 有尝试过arguments使用三次当然一定会错,或是将$term变成阵列方式但还是有问题。 不知道这情况是否有什麽建议作法呢? 感恩 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.216.19.62
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1486731054.A.1F7.html
1F:→ MOONRAKER: 这个…既然你对每个搜寻词都会加三段like 里面都有? 02/10 22:18
2F:→ MOONRAKER: 那你$arguments[] = 那边也应该要连续加三次吧 02/10 22:19
3F:→ MOONRAKER: 不然以你现在的写法 k个搜寻词 最後送execute的字串里 02/10 22:20
4F:→ MOONRAKER: 会有3*k个? 可是arguments里面却只有k个 02/10 22:21
5F:→ rjackie: 所以是这样难怪一直报错误,我试看看这方式刚刚用土炮 02/11 03:36
6F:→ rjackie: 的方式解决了,但这方法因该可以是看看感谢M大\ 02/11 03:38
7F:推 hung0724: 错误讯息写得很明白了阿... 02/11 07:34
8F:→ rjackie: 不好意思,那麽如果这样写的话execute($arguments)也需要 02/11 17:23
9F:→ rjackie: 改成execute($arguments,$arguments,$arguments)吗? 02/11 17:23
10F:→ MOONRAKER: 只要确定你$arguments里面元素数跟 ? 数符合就好 02/11 19:42
11F:→ MOONRAKER: 所以一个搜寻词加进$arguments要连加三次 02/11 19:43
12F:→ MOONRAKER: 如果换成同一个阵列连续用三次 没写过 你可以试试看 02/11 19:44







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Gossiping站内搜寻

TOP