gpt4 book ai didi

php - 动态 MySQL 查询

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

我正在尝试创建一个动态 SQL 查询,将我的 cat 列与用户在表单中输入的任何内容进行比较。我的想法是,我将能够获取动态值数组,然后将它们与 cat 列进行比较。这就是我尝试做的:

// Loop to get the array of values from form
$get_arr = $_GET;
foreach ($get_arr as $get) {
$var = "AND cat LIKE $get";
}
// SQL query
$sql = "SELECT * FROM items
WHERE title LIKE 'this'
AND description LIKE 'that'
'%$var%'";

它不起作用——$var总是显示为空白。解决方案是什么?

最佳答案

您有几个问题。

  1. 您没有转义输入,因此可能会遇到 SQL 注入(inject)或语法错误。

  2. 您需要在 LIKE 参数两边加上引号。

  3. 每次循环都会覆盖 $var,而不是附加到它。

  4. 您没有在表达式周围放置任何空格。

  5. 您将 % 放在整个 $var 周围,它应该位于 LIKE 参数内。

foreach ($get_arr as $get) {
$get = mysqli_real_escape_string($conn, $get);
$var .= " AND cat like '%$get%'";
}

$sql = "SELECT * FROM items
WHERE title LIKE '%this%'
AND description LIKE '%that%'
%var";

关于php - 动态 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24745849/

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