gpt4 book ai didi

php - is_array for MySQL Select Statement with PHP

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

我有一个正在使用的基本 PHP 函数。有时,它传递一个变量数组,而其他时候它只传递一个变量。所以,目前,我有这样的东西:

 <?
function do_this($user_id_array) {
$user_ids = array();
foreach ($user_id_array as $single_user_id) {
$sql = 'SELECT username FROM users
WHERE id = $single_unit';
while($row = mysql_fetch_assoc($result)) {
array_push($user_ids, $row['id'];
}
}
return $user_ids;
}
?>

我的问题是:如果我调用函数并只向它发送一个变量(而不是一个数组),它(显然)会给我以下错误:Invalid argument supplied for foreach()

我的问题是:我怎样才能用最少的代码以最有效的方式改变这个功能?我是否必须使用 if is_array() 语句并仅创建 2 个 SELECT 语句,每种情况一个(数组和非数组)?

非常感谢!

最佳答案

我看到几个选项:

  • 传递一个数组,即使它只有一个元素长
  • 测试 is_array() 并采取相应行动
  • 添加另一个参数,说明是检查 int 还是数组。

我会选择选项 1 或 2,因为选项 3 容易出错。

此外,对于您的问题可能有更好的解决方案,您不应该对每个用户都进行一次查询,您应该在 MySQL 中使用 IN 关键字,如下所示:

$users = (is_array($user_id_array)) ? implode(',',$user_id_array) : $user_id_array;
$query = "SELECT `username` FROM `users` WHERE `id` IN({$users})";

关于php - is_array for MySQL Select Statement with PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7162058/

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