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

时间:2018-09-01 18:30:55

标签: mysql arrays messaging

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

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

1 个答案:

答案 0 :(得分:0)

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

但是在这种方法中,如果查询太大,或者任何插入出现任何错误,其余插入都会失败。