Mysql 我正在尝试替换:执行查询时搜索,但它似乎没有被替换

Mysql 我正在尝试替换:执行查询时搜索,但它似乎没有被替换,mysql,pdo,Mysql,Pdo,在回顾这一点之后,我在使用准备好的语句时遇到了一些问题 我已将以下内容添加到我的db连接中: $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 以下是我的查询语句: $query = "SELECT schedules.schedule_name, users.name, schedules.schedule_id FROM schedules INNER JOIN users ON schedules.a

在回顾这一点之后,我在使用准备好的语句时遇到了一些问题

我已将以下内容添加到我的db连接中:

$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
以下是我的查询语句:

$query = "SELECT schedules.schedule_name, users.name, schedules.schedule_id
    FROM schedules
    INNER JOIN users
    ON schedules.admin_id=users.user_id
    WHERE schedules.schedule_name
    LIKE '%:search%'
    ORDER BY schedules.schedule_name";
    $stmt   = $db->prepare($query);
    $result = $stmt->execute(array('search' => $search_string));
    $search_results = $stmt->fetchAll();

如图所示,我正在尝试替换:在执行查询时搜索,但它似乎没有被替换。

执行参数化查询时,它不是简单的字符串替换,也不会用单引号括起来:

$query = "SELECT schedules.schedule_name, users.name, schedules.schedule_id
    FROM schedules
    INNER JOIN users
    ON schedules.admin_id=users.user_id
    WHERE schedules.schedule_name
    LIKE :search
    ORDER BY schedules.schedule_name";
但是你想在术语周围有%的通配符,对吗?在注入时添加它们:

$result = $stmt->execute(array('search' => '%' . $search_string . '%' ));

像你想要的那样含糊不清的标题对谷歌搜索者来说很麻烦,他们必须筛选与搜索内容无关的问题。好吧,下次我会记住的。这与下次无关。这是关于找到你问题的答案。当前一个。好的,你也可以这样做: