DELETE FROM-MYSQL数据库上的foreach循环

迈克尔·泰勒

我正在运行Wordpress数据库,并且想向所有用户发送一张圣诞贺卡。

麻烦是其中一些是伪造的。实际上接近3000。

我不想发送这些消息,因此它们只是反弹回来并填满我的收件箱,使邮件服务器或其他邮件过载。

所以我写了这个脚本。

 // Create connection
$link = mysqli_connect($servername, $username, $password, $dbname);

// Check connection
if (!$link) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully <br>";

//If form submitted

if ($_GET["form"] == "true") {
echo '<H1>FORM SUBMITTED</H1>';

// select all users

$query = "SELECT wp_users.ID FROM wp_users,wp_comments GROUP BY wp_users.ID ORDER BY wp_users.ID asc";

$result = $link->query($query);

while($row = mysqli_fetch_array($result)) {

$all_names[]=$row["ID"];


} 



 $query = "SELECT wp_users.ID FROM wp_users,wp_comments WHERE INSTR(wp_users.display_name, wp_comments.comment_author) > 0 GROUP BY wp_users.ID     ORDER BY wp_users.ID asc";

//execute the query.

$result = $link->query($query);

//display information:

while($row = mysqli_fetch_array($result)) {

$names[]=$row["ID"];


} 

$dupe_ID = array_diff($all_names,$names);

$i=0;

// LOOP THE COMMAND

foreach ($dupe_ID as $value) {


// DELETE THE USERS
$query = "DELETE FROM wp_users WHERE ID = $value";

if (mysqli_query($link, $query)) {
    $i++;
    } else {
        echo "Error deleting records: " . mysqli_error($link);
    }

}

echo $i . 'Names deleted';
}

else

{

// select all users

$query = "SELECT wp_users.display_name FROM wp_users,wp_comments GROUP BY wp_users.ID ORDER BY wp_users.display_name asc";

$result = $link->query($query);

while($row = mysqli_fetch_array($result)) {

$all_names[]=$row["display_name"];


} 



 $query = "SELECT wp_users.display_name FROM wp_users,wp_comments WHERE INSTR (wp_users.display_name, wp_comments.comment_author) > 0 GROUP BY wp_users.ID ORDER BY wp_users.display_name asc";

//execute the query.

$result = $link->query($query);

//display information:

while($row = mysqli_fetch_array($result)) {

$names[]=$row["display_name"];


} 

$dupe_names = array_diff($all_names,$names);

$i=1;

// print out the bogus names

foreach ($dupe_names as $value) {
echo $i.')'. $value .'<br>';
$i++;
}

echo '<p><h3>To delete these names click here </h3></p>';
echo '<form method="GET" target="bogus_users.php" ><input type=submit value="Submit">      <input type="hidden" name="form" value="true"></form>';

}

它分为两个部分:

1)该页面准确地告诉我数据库中的哑项并输出名称,以便我可以对其进行扫描。

2)提交表格。$ _GET命令返回一个令牌,告诉脚本运行相同的脚本,该脚本将删除这些记录。这将返回正确的令牌,等于伪造的记录数,但不会删除任何记录。

我运行了几次,直到我的ISP向我发送一封电子邮件,告诉我服务器超载。

这里有一个明显的错误,因为我可以看到。

出生代码

首先,循环删除是使用数据库的主题。您应该进行批量删除。

一种方法是将ID聚合为以下形式的字符串$ values:id1,id2,id3,...,然后执行类似的操作

$query = "DELETE FROM wp_users WHERE ID in ($values)";

另一种方法是在wp_users表中添加一列,以标记不活动的用户。然后,您将执行软删除,这将在数据库和服务器上更加轻松。

您将运行一条设置inActive标志而不是DELETE语句的更新语句,然后仅向活动用户发送电子邮件。

最后,由于您的代码已经在做所有工作以找出真实的用户,因此您只需使用相同的代码即可发出圣诞贺卡。因此,无需删除用户,只需邮寄真实用户,您就可以在代码中包含列表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

DELETE FROM - foreach loop on MYSQL database

来自分类Dev

MySQL 不会 SELECT * FROM 数据库

来自分类Dev

MySQL使用DELETE FROM删除重复的行

来自分类Dev

在 Hyperstack 上,delete 方法不会更新数据库中的 has_many 关系

来自分类Dev

MySQL和ORACLE的性能-SELECT +检索行+ DELETE VS. DELETE WHERE SELECT FROM

来自分类Dev

使用delete方法时数据库错误的异常

来自分类Dev

DELETE查询未从数据库表中删除

来自分类Dev

在Windows Azure上PUT和Delete无法与ASP.NET WebAPI和数据库一起使用

来自分类Dev

C ++和Sqlite DELETE查询实际上并未从数据库文件中删除该值

来自分类Dev

OneToMany不会在H2数据库上使用ON DELETE CASCADE创建外键

来自分类Dev

Delete element from List in Scheme

来自分类Dev

Foreach 循环不会将 Quickbooks 中的所有记录插入到 MySQL 数据库中。

来自分类Dev

用 PHP 中的 1000 行比较循环(foreach)和查询数据库 mysql 之间的性能?

来自分类Dev

SQL中的DELETE和DELETE FROM之间的区别?

来自分类Dev

MySQL DELETE空间发布

来自分类Dev

基于SELECT的MySQL DELETE

来自分类Dev

Delete delimiter from columns csv regex

来自分类Dev

SQL错误:DELETE和SELECT FROM冲突

来自分类Dev

How to delete a file from local disk in UWP

来自分类Dev

Delete a substring from a string with a filename in Perl

来自分类Dev

在foreach循环中写入数据库的链接失败

来自分类Dev

从SQL数据库提取ForEach循环中的PHP“同时”

来自分类Dev

使用foreach循环上传多张图片并插入数据库

来自分类Dev

将连接到foreach循环的数组插入数据库

来自分类Dev

如何使用foreach循环更新数据库中的行?

来自分类Dev

Foreach 循环更新每个数据库值

来自分类Dev

WCF - Foreach 循环将记录插入数据库

来自分类Dev

Nhibernate:session.update()和session.delete()之后的数据库值保持不变

来自分类Dev

使用Laravel使用数据库应用程序进行PUT和DELETE

Related 相关文章

  1. 1

    DELETE FROM - foreach loop on MYSQL database

  2. 2

    MySQL 不会 SELECT * FROM 数据库

  3. 3

    MySQL使用DELETE FROM删除重复的行

  4. 4

    在 Hyperstack 上,delete 方法不会更新数据库中的 has_many 关系

  5. 5

    MySQL和ORACLE的性能-SELECT +检索行+ DELETE VS. DELETE WHERE SELECT FROM

  6. 6

    使用delete方法时数据库错误的异常

  7. 7

    DELETE查询未从数据库表中删除

  8. 8

    在Windows Azure上PUT和Delete无法与ASP.NET WebAPI和数据库一起使用

  9. 9

    C ++和Sqlite DELETE查询实际上并未从数据库文件中删除该值

  10. 10

    OneToMany不会在H2数据库上使用ON DELETE CASCADE创建外键

  11. 11

    Delete element from List in Scheme

  12. 12

    Foreach 循环不会将 Quickbooks 中的所有记录插入到 MySQL 数据库中。

  13. 13

    用 PHP 中的 1000 行比较循环(foreach)和查询数据库 mysql 之间的性能?

  14. 14

    SQL中的DELETE和DELETE FROM之间的区别?

  15. 15

    MySQL DELETE空间发布

  16. 16

    基于SELECT的MySQL DELETE

  17. 17

    Delete delimiter from columns csv regex

  18. 18

    SQL错误:DELETE和SELECT FROM冲突

  19. 19

    How to delete a file from local disk in UWP

  20. 20

    Delete a substring from a string with a filename in Perl

  21. 21

    在foreach循环中写入数据库的链接失败

  22. 22

    从SQL数据库提取ForEach循环中的PHP“同时”

  23. 23

    使用foreach循环上传多张图片并插入数据库

  24. 24

    将连接到foreach循环的数组插入数据库

  25. 25

    如何使用foreach循环更新数据库中的行?

  26. 26

    Foreach 循环更新每个数据库值

  27. 27

    WCF - Foreach 循环将记录插入数据库

  28. 28

    Nhibernate:session.update()和session.delete()之后的数据库值保持不变

  29. 29

    使用Laravel使用数据库应用程序进行PUT和DELETE

热门标签

归档