所以我正在尝试向数据库中的所有用户发送消息。我看到了另一篇文章,但它用于电子邮件,并且之间有逗号。我不知道,但也许有一些解决方案可以正确插入带有所有用户ID的数据。
while($row = mysqli_fetch_array($result))
{
$users[] = $row['ID'];
}
$sendmes = "INSERT INTO notify (notfi, thumb_src, title, url, user_ID) VALUES ('$msg', '$src', '$title', '$url', '$users[]')";
这给出了 Array((,但它似乎不是这样工作的。
所以我用
$user = implode(", ", $users);
$sendmes = "INSERT INTO notify (notfi, thumb_src, title, url, user_ID) VALUES ('$msg', '$src', '$title', '$url', '$user')";
之后它仍然无法正常工作,这是因为它在 ID 之间使用逗号并且仅适用于电子邮件。在那之后,我正在搜索谷歌,但找不到任何关于它的信息。
所以我最后的希望就在这里,帮助其他人解决同样的问题。
"INSERT INTO notify (notfi, thumb_src, title, url, user_ID) VALUES ('$msg', '$src', '$title', '$url', '$users[]')"
- 这里的"user_ID"的值应该是单个user_id值,而不是数组。
您可以检查以下查询:
while($row = mysqli_fetch_array($result))
{
$users[] = $row['ID'];
}
foreach ($users as $user_id)
{
$sendmes = "INSERT INTO notify (notfi, thumb_src, title, url, user_ID) VALUES ('$msg', '$src', '$title', '$url', '$user_id')";
// Execute the Query;
}
另一种方法是: 如果要完全插入每个用户,而不是每个用户的单个查询,则可以通过以下方式更改查询;
"INSERT INTO tbl_name (notfi, thumb_src, title, url, user_ID)
VALUES
('$msg', '$src', '$title', '$url', '$users[0]'),
('$msg', '$src', '$title', '$url', '$users[1]'),
('$msg', '$src', '$title', '$url', '$users[2]')
....
('$msg', '$src', '$title', '$url', '$users[(count($users) - 1)]')"
但在这种方法中,如果查询变得太大,或者任何插入中存在任何错误,则剩余的插入将失败。