gpt4 book ai didi

php - 我应该如何在 php 中生成动态查询字符串?

转载 作者:行者123 更新时间:2023-12-01 00:11:09 25 4
gpt4 key购买 nike

我正在为图书数据库创建一个搜索引擎。我有一个用于精确搜索和类似搜索的单选按钮。我的查询是我应该如何生成一个精确搜索的 SQL 查询。例如,我有 ISBN 和标题作为字段。同样,我有很多字段,它们也可以留空和填充。我应该如何为此查询生成 SQL 查询?

例如,如果填充了标题并且填充了 isbn,那么它应该是

select * from book_info where isbn="$_POST['isbn']" and title="$_POST['title']"

如果填充了 10 个字段,那么我应该如何生成?检查 filed 是否为空或 not 是一种解决方案。但是还有比这更好的解决方案吗?

最佳答案

您可以像下面的代码一样将所有选项放在列表中。

$search = array("isbn" => $_POST['isbn'],
"title" => $_POST['title'],
"table_field" => $input_value);

然后,使用for each循环构造条件部分。

$sql = "SELECT * FROM book_info";
$condition = "";
foreach($search as $key => $value) {
if (isset($value) && ($value != "")) {
if ($condition != "") {
$condition .= " AND ";
}
$condition .= "{$key}=:{$key}";
}
}

使用 prepare 语句来防止 SQL 注入(inject)。

$sh = $db->prepare($sql . " WHERE " . $condition);
foreach($search as $key => $value) {
if (isset($value) && ($value != "")) {
if ($condition != "") {
$condition .= " AND ";
}
$sh->bindValue(":{$key}", $value);
}
}

关于php - 我应该如何在 php 中生成动态查询字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17905073/

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