php - 通过 CSV 内容 DELETE FROM 查询 MySQL

标签 php mysql database csv sql-delete

我有一个 CSV 文件上传到与包含我想要从数据库表(一次全部)删除的人员的电子邮件地址的文件相同的目录。我使用的代码正确回显,但没有从表中删除任何内容。 CSV 文件将上传到与包含以下代码的文件相同的目录。

<?php
    // Make a MySQL Connection
    mysql_connect("x", "x", "x") or die(mysql_error());
    mysql_select_db("volunteers2012") or die(mysql_error());
    mysql_query($sql);
    /********************************/

    $addresses = file('deleteEmails.csv');
    foreach($addresses as $address) {
        $safe_address = mysql_real_escape_string($address);
        $sql = "DELETE FROM vols2012 WHERE `email` = '$safe_address'";
        $result = mysql_query($sql) or die(mysql_error());
    }
    echo "DELETION A GREAT SUCCESS!";
    ?>

第 2 轮 - 尝试使用 .txt 文件

<?php
    // Make a MySQL Connection
    mysql_connect("x", "x", "x") or die(mysql_error());
    mysql_select_db("volunteers2012") or die(mysql_error());
    mysql_query($sql);
    /********************************/

    $addresses = "LOAD DATA LOCAL INFILE ('deleteEmails.txt')";
foreach($addresses as $address) {
$safe_address = mysql_real_escape_string($address);
$sql = "DELETE FROM vols2012 WHERE (email = '$safe_address')";
$result = mysql_query($sql) or die(mysql_error());
   }
    echo "DELETION A GREAT SUCCESS!";
    ?>

我仍然收到成功回显,但出现错误 - 为 foreach() 提供的参数无效。

最佳答案

我最终没有使用上传删除方法,而是创建了一个带有复选框的 html 页面来手动删除。最后,这是最好的方法,因为我需要将一些记录保留在一个表中,而不是另一个表中。

          <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <?php


       // Delete the customer rows (only if the form has been submitted)

         if(isset($_POST['submit']))
      {
      foreach($_POST['todelete'] as $delete_id) {

             $query="DELETE FROM volConfirm WHERE email='$delete_id'";


                mysql_query($query) or die ('Error in query: ' .mysql_errno() . mysql_error());
            }


        }


        // Display the customer rows with checkboxes for deleting
        $query="SELECT * FROM volConfirm";

        $result = mysql_query($query);
        while ($row = mysql_fetch_array($result)){
        echo '<input type="checkbox" value="' . $row['email'] .'"name="todelete[]" />';
        echo $row['agreeName'];
        echo ' '.$row['position'];
        echo ' '.$row['shift_times'];
        echo ' '.$row['email'];
        echo ' '.$row['confirmed'];
        echo '<br />';
        echo '<br />';
       }
     ?>

        <input type="submit" name="submit" value="Remove" />
      </form>

关于php - 通过 CSV 内容 DELETE FROM 查询 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10560712/

相关文章:

php - 如何使用单个查询从多个mysql表中获取数据

php - 渲染不同的 View 脚本,将数据传递到该 View 并在 Zend 中获取输出

php - SSL 连接错误无法发送 tlsv1.2

mysql - 如何从 mysql select 查询中删除重复行?

php检查文件名是否存在,重命名文件

mysql - 需要帮助将两个功能性 mysql 查询合并为一个吗?

mysql - 在 ms-access 中与 mysql 服务器的无 DSN 连接不记得用户名和密码

用于按列选择系列中第一个的 SQL 查询

php - 从 Sphinx(用 PHP)检索信息的最佳方法是什么?

android - 如何检查android数据库中的重复名称?