team digifizz
team digifizz

Reputation: 1

Delete multiple value from database

I am using this file to delete record from server

<?php

$dbhandle = mysql_connect("localhost", "admin", "admin") or die(mysql_error()) ; 
$selected =  mysql_select_db("dbname" ,$dbhandle) or die(mysql_error()) ; 


$id=$_POST['id'];

foreach($id as  $value)
{

 $query = mysql_query("DELETE FROM `record` WHERE `id`=$value");
}
 mysql_close($dbhandle);
?>

but i am unable to delete record from the database. query is executing without any error but it cannot delete records from table

Upvotes: 0

Views: 468

Answers (2)

user1032531
user1032531

Reputation: 26281

This will work even if $id array doesn't contain integers.

class db {
    private static $instance = NULL;
    private function __construct() {}   //Make private
    private function __clone(){}   //Make private
    public static function db() //Get instance of DB
    {
        if (!self::$instance)
        {
            self::$instance = new PDO("mysql:host=localhost;dbname=myDB;charset=utf8",'myUsername','myPassword',array(PDO::ATTR_EMULATE_PREPARES=>false,PDO::MYSQL_ATTR_USE_BUFFERED_QUERY=>true,PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE=>PDO::FETCH_ASSOC));
        }
        return self::$instance;
    }
}

if(count($ids)) {  //Make sure you don't have an empty data set.
  $qMarks = str_repeat('?,', count($ids)-1) . '?';
  $sql ="DELETE FROM `record` WHERE `id` IN ({$qMarks})";
  $stmt = $db::db->prepare($sql);
  $stmt->execute($id);
}

Upvotes: 0

anna
anna

Reputation: 595

$query = mysql_query('DELETE FROM `record` WHERE `id` IN (' . implode(',', array_map('intval', $id)) . ')');

Upvotes: 3

Related Questions