gpt4 book ai didi

php - 使用数组创建动态 MySQL 查询 - PHP

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

我正在尝试运行一个 MySQL 查询,其中使用 LIKE 查找片段。

表结构:表示例

id    name     piece   
0 jon piece0
1 james piece3
2 sarah piece6

到目前为止我的截图:

$pieces  = "piece0 piece1";  //variable
$piecearrayexplode = explode(" ", $pieces);
$piece0 = $piecearrayexplode[0];
$piece1 = $piecearrayexplode[1];

$sql = "SELECT * FROM TableExample WHERE piece LIKE '%$piece0%' OR pieces LIKE '%$piece1%'";

我遇到的问题是 $pieces 是一个变量,我需要 $sql 是动态的并自动具有正确数量的 LIKE 语句。

例如如果 $pieces = "piece0piece1piece2",我希望 $sql 为:

$sql = "SELECT * FROM TableExample WHERE piece LIKE '%$piecearrayexplode[0]%' OR pieces LIKE '%$piecearrayexplode[1]%' OR pieces LIKE '%$piecearrayexplode[2]%'";

注意:$pieces 始终用空格分隔。

我可以统计一下字数。

$count = str_word_count($pieces);

我不知道该去哪里。

我确实看过这个Create a dynamic mysql query using php variables

这似乎不是我要寻找的,因为 LIKE 是连续的,而不是像 WHERE 那样的 1 个单个语句。我在这里遗漏了什么吗?

最佳答案

因此也动态构建您的查询:

$foo = '... list of pieces ...';
$parts = explode(' ', $foo);

$likes = array();
foreach($parts as $part) {
$likes[] = "piece LIKE '%$part%'";
}

$sql = "SELECT ... WHERE " . implode(' or ', $likes);

但请注意,这很容易受到sql injection attacks的影响。 .

关于php - 使用数组创建动态 MySQL 查询 - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39497556/

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