Как использовать LIKE в PDO? - PullRequest
       36

Как использовать LIKE в PDO?

0 голосов
/ 15 апреля 2020

Я пытаюсь использовать LIKE с моим sql запросом в php. но он отображается только тогда, когда поисковый запрос точно такой же. это мой код ниже.

<?php
include 'config.php';

$sql = "select name, skill, Location, phone, rating FROM searchResults WHERE skill LIKE :search OR name LIKE :search order by id desc";

try {
    $dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);  
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $dbh->prepare($sql);  
    // $stmt->bindParam("search", $_GET['search']);
    $stmt->bindValue(":search", $_GET['search'], PDO::PARAM_STR);
    $stmt->execute();
    $employees = $stmt->fetchAll(PDO::FETCH_OBJ);
    $dbh = null;
    echo '{"items":'. json_encode($employees) .'}'; 
} catch(PDOException $e) {
    echo '{"error":{"text":'. $e->getMessage() .'}}'; 
}

?>

пожалуйста, помогите

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

В вашем примере вы можете просто сделать

$stmt->bindValue(":search", "%" . $_GET['search'] . "%", PDO::PARAM_STR);
1 голос
/ 15 апреля 2020

Вам нужно поставить % вокруг поискового слова в запросе MySQL. Чек https://dev.mysql.com/doc/refman/8.0/en/pattern-matching.html

...