【发布时间】:2015-02-22 02:02:28
【问题描述】:
基本上,我正在使用 php 和 MySQL 从头开始制作社交网络 CMS
我需要通过搜索用户的用户名、显示名称和电子邮件来进行搜索,以返回上述任何一项的结果
<?php require('core.common.php');
//Search page php
$sq = htmlspecialchars($_GET['q'], ENT_QUOTES);
$search = $db->prepare("SELECT username, disp_name, profilepic
FROM users WHERE username OR disp_name OR email LIKE '%sq%';");
$search->execute();
$viewsearch = $search->fetchAll();
我试过这个方法,但一次只能在一列上:
$search = $db->prepare("SELECT username, disp_name, profilepic
FROM users WHERE username LIKE '%$sq%';");
我已经试过了……
"SELECT username, disp_name, profilepic FROM users WHERE username LIKE '%sq%'OR disp_name LIKE '%sq%'OR email LIKE '%sq%' ORDER BY username;"
和
"SELECT username, disp_name, profilepic FROM users WHERE ((username LIKE '%sq%') OR (disp_name LIKE '%sq%') OR (email LIKE '%sq%'));"
连同上述的几个变体,仍然没有希望。
【问题讨论】:
-
每个 OR 条件都应该有一个用于测试的值。其中 A 喜欢 X 或 B 喜欢 Y 或 C 喜欢 Z
-
数据库是否必须使用某种存储引擎,我的是InnoDB