Php 使用复选框删除多行
我正在尝试使用php选择和删除表中的多行。每当我选择checkmultiplerows进行删除时,我都会收到这个错误,因为您的SQL语法中有一个错误;检查与MySQL服务器版本对应的手册,以了解第1行“ID5”附近使用的正确语法。当我选中复选框时,我可以单独删除单行。以下是我的代码片段:Php 使用复选框删除多行,php,mysql,Php,Mysql,我正在尝试使用php选择和删除表中的多行。每当我选择checkmultiplerows进行删除时,我都会收到这个错误,因为您的SQL语法中有一个错误;检查与MySQL服务器版本对应的手册,以了解第1行“ID5”附近使用的正确语法。当我选中复选框时,我可以单独删除单行。以下是我的代码片段: <?php mysql_connect("localhost", "root", "") or die(mysql_error()); mysql_select_db("mydatabase") or
<?php
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("mydatabase") or die(mysql_error());
if (isset($_GET['delete'])){
$multiple = $_GET['multiple'];
$i = 0;
$sql = "DELETE FROM product ";
foreach ($multiple as $item_id) { $i ++;
if ($i == 1){
$sql .= " WHERE id = " . mysql_real_escape_string($item_id) . "";
} else{
$sql .= "OR id ". mysql_real_escape_string($item_id) . "";
}
}
mysql_query($sql) or die(mysql_error());
header("location: " . $_SERVER['PHP_SELF']);
exit();
}
?>
快速但不安全的解决方案:
$sql = 'DELETE FROM product WHERE id IN ('.implode(',',$multiple).' )';
mysql_query($sql) or die(mysql_error());
这是一个语法错误或id。缺少=.$sql.=或id。mysql\u real\u escape\u string$item\u id;失败有两个原因。缺少的等号和OR,我不知道为什么在和if/else中使用它。您的查询读取为$sql=DELETE FROM product或id。mysql\u real\u escape\u string$item\u id;在其他地方。因此,您的if$i==1{让您失望了。感谢您提供的快速解决方案。这在我的本地计算机上非常有效,但当我推送到服务器时,它告诉我没有这样的文件或目录。您以前是否会遇到此问题。我不知道您在说什么。我猜:uou可以尝试删除此部件headerlocation:。$\u server['PHP_SELF'];退出;退出脚本