« Return

MySQL update query with values from an array


<?php
  /* ========================================================================================== */
  try {
  // connect to mysql database
  $dbh = new PDO('mysql:host=localhost; dbname=some_database', 'username', 'password', 
  array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

  /* ========================================================================================== */
  $table = 'emailgroup';
  $delete = array(
                  'one@domain.com',
                  'two@domain.com',
                  'three@domain.com'
                  );
  
  $removed = array();
  $nomatch = array();
      
  /* ========================================================================================== */
  $stmt = $dbh->prepare("UPDATE $table SET email = 'removed' WHERE email = :email");

  foreach ($delete as $value) {
  $stmt->bindParam(':email', $value, PDO::PARAM_STR);
  $stmt->execute();
  
  if ($stmt->rowCount() >= 1) { $removed[] = $value; }
  else { $nomatch[] = $value; }    
  } // end foreach

  echo 'removed emails:' . "\n";
  print_r($removed);
    
  echo 'no match for:' . "\n";
  print_r($nomatch);
  
  $dbh = null;
  } // end try
  
  catch(PDOException $error) {
  echo $error->getMessage();
  }

?>