gpt4 book ai didi

php - MySQL LIKE 通过 PHP、PDO 进行多字段搜索

转载 作者:行者123 更新时间:2023-11-29 10:36:19 26 4
gpt4 key购买 nike

我有一个包含文件名和描述字段的 MySQL 表。然后,我编写了这段代码来进行 LIKE 搜索。然而我糟糕的代码无法完成我想做的事情。

错误消息显示

Syntax error or access violation.

PHP 7.0/MySQL 5.0.95 是我的服务器。

$keywords = str_replace( "\xc2\xa0", " ", $keywords );
$keywords = preg_replace("/[\s]+/", " ", trim($keywords));
$keywordsarray = array_unique(explode(' ', $keywords));
$sql1 = "SELECT * FROM file_table WHERE ";

$sql2 = array();
$key = array();
foreach ($keywordsarray as $word) {
$sql2[] = " (filename LIKE ? OR describe LIKE ? )";
$key[] = '%'.$word.'%';
$key[] = '%'.$word.'%';
}
$builtsql = $sql1.implode(' AND ', $sql2);
$query = $db->prepare($builtsql);
$query->execute($key);

你能给我一些好主意吗?谢谢。

最佳答案

该问题是由于未转义 reserved word 引起的在您的查询中描述

您应该能够通过将列名称包装在 identifier quotes 中来解决语法错误问题。 (反引号)。

$sql2[] = " (`filename` LIKE ? OR `describe` LIKE ? )";

关于php - MySQL LIKE 通过 PHP、PDO 进行多字段搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46375068/

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