我现在想在表的两列上使用like。
表名= roomnames
表列= roomID,roomName,roomNo
我有一个输入字段,该字段发送一个应该在其上执行查询的字符串值。
以下是PHP PDO代码
<?php
/**
* Created by PhpStorm.
* User: HaiderHassan
* Date: 9/3/14
* Time: 9:52 PM
*/
header('Access-Control-Allow-Origin: *');
try {
$conn = new PDO('mysql:host=localhost;dbname=houserentsystem;charset=utf8', 'root', 'admin');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
if($_POST['searchFilter']){
$searchFilter = $_POST['searchFilter'];
$stmt = $conn->prepare("SELECT roomName, roomNo FROM roomnames WHERE roomName LIKE ? OR roomNo LIKE ?");
$stmt->execute(array('%'.$searchFilter.'%'));
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor();
print_r(json_encode($results));
}
Run Code Online (Sandbox Code Playgroud)
我尝试的查询是错误的,不能在这里工作是我现在尝试的。
$stmt = $conn->prepare("SELECT roomName, roomNo FROM roomnames WHERE roomName LIKE ? OR roomNo LIKE ?");
$stmt->execute(array('%'.$searchFilter.'%'));
Run Code Online (Sandbox Code Playgroud)
我想搜索房间号或房间名称,如果数据库表中存在该房间号或房间名称,它将显示结果。
对不起,我的英语不好。我希望我已经解释了。我想在多列中搜索针对输入字符串的表,输入字符串可以是no或name。数字代表房间编号,名字代表房间名称。
您必须为每个参数都有一个值,因此,请在参数值数组中将您的searchfilter加倍:
$stmt = $conn->prepare("SELECT roomName, roomNo FROM roomnames WHERE roomName LIKE ? OR roomNo LIKE ?");
$stmt->execute(array('%'.$searchFilter.'%','%'.$searchFilter.'%' ));
Run Code Online (Sandbox Code Playgroud)