gpt4 book ai didi

php - 如何正确使用数组

转载 作者:行者123 更新时间:2023-11-28 23:43:56 27 4
gpt4 key购买 nike

我有一些方法可以根据表单中的用户输入创建 MySQL 查询(这是 PHP Nette Framework 语法,但对于这个问题来说并不重要)。我如何调用数据库查询的正确语法看起来像

$query = "SELECT * FROM candidates WHERE firstname = ? AND surname = ?";
return $this->db->queryArgs($query, ['Dante', 'Hickman']);

但如您所见,这是硬编码的,因此与表单无关。对于真实形式,我创建了另一种收集数据的方法,我只是调用它:

$builder = $this->buildSearchQuery($searchParams);

$builder 转储之后是数组(3)

  0 => "SELECT * FROM candidates WHERE firstname = ? AND surname = ?" (60)
1 => array (2)
0 => "Dante" (5)
1 => "Hickman" (7)
2 => 2

此数据是正确的,它基于我插入到输入中的内容,因此方法 buildSearchQuery() 没有问题但是让我们来描述这个数组:array[0] 是带有基于输入的占位符的查询字符串,array[1][0]array[1][1]实际上是用户填写输入的数据(或文本)。array[2] 是填写的输入数。

我相信您已经注意到可以更改输入的数量,5 个输入的 buildSearchQuery() 方法将返回如下内容:

  0 => "SELECT * FROM candidates WHERE firstname = ? AND surname = ? AND favourite = ? AND notFavourite = ? AND random = ?" (60)
1 => array (5)
0 => "Dante" (5)
1 => "Hickman" (7)
2 => "Pokemon" (7)
3 => "Digimon" (7)
4 => "1122334" (7)
2 => 5

如您所见,关于“查询”部分 buildSearchQuery() 已经返回正确的值,问题在于存储在 array[1] 中的值,我我不确定如何使用 foreach 来使 $query 像这样:

return $this->db->queryArgs($builder[0], [$builder[1][0], $builder[1][1]]);

数组的动态数量。

有人可以帮我解决这个问题吗?谢谢

最佳答案

由于 $builder 的第二个元素已经是一个数组,您可以直接将其作为参数直接传递给函数:

return $this->db->queryArgs($builder[0], $builder[1]);

关于php - 如何正确使用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33939472/

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