【问题标题】:Save PHP ForEach Loop value in a Variable as Comma Separated String将变量中的 PHP ForEach 循环值保存为逗号分隔字符串
【发布时间】:2020-07-10 23:04:45
【问题描述】:

我正在尝试将变量中的 Foreach 循环值保存为逗号分隔。为此,到目前为止我有以下代码。它正在获取列表中的所有值,但没有逗号。如何在每个 id 后插入逗号

$stmt = $con->query($sql);  
$tmp = '';

foreach ($stmt as $row)
{
  $user_id=$row['user_id'];
  $tmp .= $row['user_id']; 
}

echo $tmp;

【问题讨论】:

  • 好吧,您是否尝试过在字符串中实际放置一个逗号?您似乎知道如何连接字符串,所以我不确定您遇到了什么问题。您尚未尝试在此处添加逗号。
  • 我试过这样 ",".$row['user_id'] 但不工作
  • @AbraCadaver 必须与php.net/manual/en/function.array-column.php结合使用
  • @roy 请描述以何种方式它不起作用。那次尝试的结果是什么?它与您想要的结果有何不同?

标签: php


【解决方案1】:

每次添加到$tmp 变量时,只需将逗号连接到 id 上。

$stmt = $con->query($sql);  
$tmp = '';

foreach ($stmt as $row){
  $tmp .= $row['user_id'] . ','; 
}
$tmp = trim($tmp, ',');    // remove trailing comma
echo $tmp;

回复您的评论:

$v=trim($tmp, ','); 
$insert = $con->prepare("INSERT INTO $dtBe
                        (user_mobile,user_id,posting_date) 
                VALUES ('$umobile',$v,'$posting_date')"); 
$insert->execute();

但是,当您已经将值连接到其中时,准备查询没有任何好处或安全性。

因此,请使用适当的准备和绑定方法。

$v=trim($tmp, ','); 
$insert = $con->prepare("INSERT INTO $dtBe
                        (user_mobile,user_id,posting_date) 
                VALUES (?,?,?)"); 
$insert->bind_param('sss', $umobile, $v,$posting_date);
$insert->execute();

【讨论】:

  • 嗨,它以逗号分隔输出结果,但现在我在插入逗号分隔值时遇到错误,下面是我的插入语句,它在没有这个逗号分隔值$v=trim($tmp, ','); $insert = $con->prepare("INSERT INTO $dtBe(user_mobile,user_id,posting_date) VALUES ('$umobile',$v,'$posting_date')"); $insert2->execute(); 的情况下之前工作给出错误call to a member function on boolean
  • 问题是您需要将$v 括在引号中,因为它是一个字符串,现在其中有逗号,所以'$v'
  • 但是,如果您正在准备该查询,并且应该这样做,那么您还应该将值绑定到 ? 参数。准备一个已经将危险值连接到的查询是不安全的
  • @roy 您打算在user_id 列中插入一个列表 id 还是一个单个 id?不清楚。我认为您真的应该更新您的问题(或删除并发布一个新问题)以更好地描述您的最终目标。很可能,您的方法作为一个整体是错误的(或至少不是最佳的),更好地了解正在发生的事情可以帮助我们提出更好的方法来实现您的目标。
  • ids 的逗号分隔列表放入行列中几乎从来都不是一个好主意。这使得使用这些信息非常以后在原始 SQL 中很困难
猜你喜欢
  • 2016-12-04
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
  • 2020-11-05
  • 1970-01-01
  • 2016-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多