gpt4 book ai didi

php - SQL 字符串与 if 语句的连接

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

我有一个简单的全文搜索查询,数据来自 HTML 表单输入。如果语句检查或者用 array_key_exists 填充了所有三个输入,然后连接所有字符串,但是如果有人没有填充第一个或第二个输入,那么我的查询 WHERE 部分是 WHERE AND contract = $var 所以在这种情况下 AND 是不需要的。我的问题的解决方案是什么,我该如何解决?当需要 AND 时,只需添加到查询字符串中,不需要时不添加。

    $sql = "SELECT 
slug,
title,
company,
location,
email,
street,
city,
phone,
url,
description,
image,
created_at
FROM jobs
WHERE ";

array_key_exists('paieska', $segment) ? $sql .= "MATCH(title, description) AGAINST('".urldecode($segment['paieska'])."') " : '';
array_key_exists('darbo-laikas', $segment) ? $sql .= "AND contract = '".$segment['darbo-laikas']."' " : '';
array_key_exists('miestas', $segment) ? $sql .= "AND location = '".$segment['miestas']."'" : '';

最佳答案

最简单的解决方案是在原始 where 语句中添加一个 1(并且在您的第一个 $sql if 语句之前添加 AND)。这将始终为真,并将返回所有记录。

如果 darbo-laikas 存在,您的查询将是 ...FROM jobs WHERE 1 AND contract... 这将正常工作。

$sql = "SELECT 
slug,
title,
company,
location,
email,
street,
city,
phone,
url,
description,
image,
created_at
FROM jobs
WHERE 1 ";

array_key_exists('paieska', $segment) ? $sql .= "AND MATCH(title, description) AGAINST('".urldecode($segment['paieska'])."') " : '';
array_key_exists('darbo-laikas', $segment) ? $sql .= "AND contract = '".$segment['darbo-laikas']."' " : '';
array_key_exists('miestas', $segment) ? $sql .= "AND location = '".$segment['miestas']."'" : '';

关于php - SQL 字符串与 if 语句的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40126119/

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