因此,我正在尝试向数据库中的所有用户发送消息。我看到了另一篇文章,但该文章曾用于电子邮件,并且之间有逗号。我不知道,但是也许有一些解决方案可以正确插入所有用户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,但找不到任何有关它的信息。
所以我的最后希望就在这里,可以帮助其他有相同问题的人。
答案 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)]')"
但是在这种方法中,如果查询太大,或者任何插入出现任何错误,其余插入都会失败。