MySql如何向所有用户发送消息PHP

MySql how can I send a message to all users PHP

所以我正在尝试向数据库中的所有用户发送一条消息。我看到了另一篇文章,但它用于电子邮件,并且在它们之间有逗号。我不知道,但也许有一些解决方案可以正确插入包含所有用户 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 之间使用逗号并且仅适用于电子邮件。之后我搜索了 google 但找不到任何相关信息。

所以我最后的希望就在这里,帮助其他有同样问题的人。

"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)]')"

但在这种方法中,如果查询变得太大,或者如果任何插入有任何错误,其余插入将失败。