gpt4 book ai didi

php - 如果选择了多个值,数组从 mysql 不返回任何内容

转载 作者:行者123 更新时间:2023-11-29 01:59:05 27 4
gpt4 key购买 nike

如何显示查询的所有结果?如果我的 $author 打印为 Array ( [0] => 1 ),查询将提取正确的数据。但是,如果我的 $author 打印为数组 ( [0] => 1 [1] => 8 ) 或从我的表单收到的值的任意组合,则它返回空。

数组打印正确,所以我从那一点向前移动并假设问题出在查询上但无法弄清楚。

$query = "SELECT * FROM estudos";
if (isset($author)){
$query.=" WHERE author='" . implode ($author) ."'";
print_r ($author);
}

这是我的 php 和 html...

$results=$dbclient->query($query) or die(mysqli_error());

<?php
while($row=mysqli_fetch_array($results))
echo"<tr><td class='name'>$row[name]</td>";
?>

最佳答案

您缺少 implode()glue 参数.如果没有它,您的 $query 将看起来像这样:

SELECT * FROM estudos WHERE author='FooBarBaz'

这是一个语法上有效的 SQL 查询,但它没有执行您想要的操作。

您可能正在寻找 IN条款。

$query .= " WHERE author IN (" . implode (',', $author) .")";

请注意,我还没有修复 SQL injection查询中的漏洞。我建议您切换到 MySQLi 或 PDO 并开始使用参数化查询以防止 SQL 注入(inject)。

关于php - 如果选择了多个值,数组从 mysql 不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19820759/

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