Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从数据库中删除多个值_Mysql_Delete Row - Fatal编程技术网

Mysql 从数据库中删除多个值

Mysql 从数据库中删除多个值,mysql,delete-row,Mysql,Delete Row,我正在使用此文件从服务器中删除记录 <?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_q

我正在使用此文件从服务器中删除记录

<?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);
?>


但我无法从数据库中删除记录。查询正在执行,没有任何错误,但它无法从表中删除记录

即使
$id
数组不包含整数,这也可以工作

$query = mysql_query('DELETE FROM `record` WHERE `id` IN (' . implode(',', array_map('intval', $id)) . ')');
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);
}

即使
$id
数组不包含整数,这也会起作用

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);
}

即使
$id
数组不包含整数,这也会起作用

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);
}

即使
$id
数组不包含整数,这也会起作用

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);
}



请确保转义$value,因为它是用户提供的,并且可能会被注入。更好的方法是,在PDO中使用预先准备好的语句。显然,
$id
返回了错误的值,因为语法非常适合younis。在执行查询之前,请执行
echo(“”.print\r($\u POST,1)。“”)
并查看它的外观。$id返回正确的值@younis您能显示这些值吗@TeamDigifizz请确保避开$value,因为它是用户提供的,并且可能会被注入。更好的方法是,在PDO中使用预先准备好的语句。显然,
$id
返回了错误的值,因为语法非常适合younis。在执行查询之前,请执行
echo(“”.print\r($\u POST,1)。“”)
并查看它的外观。$id返回正确的值@younis您能显示这些值吗@TeamDigifizz请确保避开$value,因为它是用户提供的,并且可能会被注入。更好的方法是,在PDO中使用预先准备好的语句。显然,
$id
返回了错误的值,因为语法非常适合younis。在执行查询之前,请执行
echo(“”.print\r($\u POST,1)。“”)
并查看它的外观。$id返回正确的值@younis您能显示这些值吗@TeamDigifizz请确保避开$value,因为它是用户提供的,并且可能会被注入。更好的方法是,在PDO中使用预先准备好的语句。显然,
$id
返回了错误的值,因为语法非常适合younis。在执行查询之前,请执行
echo(“”.print\r($\u POST,1)。“”)
并查看它的外观。$id返回正确的值@younis您能显示这些值吗@teamdigifizzThis还解决了OP的SQL注入漏洞。请详细说明此处发生的情况,即删除
foreach
以替代此功能、数组值转换/清理,以及不运行多个查询而带来的性能改进。从PHP 5.5.0开始,MySQL扩展就不受欢迎。你应该考虑使用MySQL或PdoyMySQL扩展,但这不是他的问题!尤尼斯。可能吧,但问题中没有说明。这也解决了OP的SQL注入漏洞。请详细说明此处发生的情况,即删除
foreach
以替代此功能、数组值转换/清理,以及不运行多个查询而带来的性能改进。从PHP 5.5.0开始,MySQL扩展就不受欢迎。你应该考虑使用MySQL或PdoyMySQL扩展,但这不是他的问题!尤尼斯。可能吧,但问题中没有说明。这也解决了OP的SQL注入漏洞。请详细说明此处发生的情况,即删除
foreach
以替代此功能、数组值转换/清理,以及不运行多个查询而带来的性能改进。从PHP 5.5.0开始,MySQL扩展就不受欢迎。你应该考虑使用MySQL或PdoyMySQL扩展,但这不是他的问题!尤尼斯。可能吧,但问题中没有说明。这也解决了OP的SQL注入漏洞。请详细说明此处发生的情况,即删除
foreach
以替代此功能、数组值转换/清理,以及不运行多个查询而带来的性能改进。从PHP 5.5.0开始,MySQL扩展就不受欢迎。你应该考虑使用MySQL或PdoyMySQL扩展,但这不是他的问题!尤尼斯。可能吧,但问题中没有说明。也许是UUID的。