gpt4 book ai didi

mysql - 我正在尝试替换 :search when the query is executed but it does not seem to be replaced

转载 作者:行者123 更新时间:2023-11-30 23:05:38 25 4
gpt4 key购买 nike

查看此内容后SO ,我在使用准备好的语句时遇到了一些麻烦。

我已将以下内容添加到我的数据库连接中:

$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();

正如您在 LIKE 中看到的,我试图在执行查询时替换 :search 但它似乎没有被替换。

最佳答案

当你做一个参数化查询时,它不仅仅是一个字符串替换,你也不要用单引号将它括起来:

$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";

但是您希望在术语周围使用 % 通配符,对吗?注入(inject)时添加它们:

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

关于mysql - 我正在尝试替换 :search when the query is executed but it does not seem to be replaced,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22019905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com