PHP/MySQL - 删除不工作

标签 php mysql sql-delete

<分区>

我决定在我的程序中添加删除功能,但出于某种原因,DELETE FROM 不起作用。我提供了一些有用的代码:

JavaScript:

function removeAgeGender(id) {
     console.log("Entering removeAgeGender");
     if (id == 'national age gender') {
         var data = $('[name="remove_age_gender[]"]').serialize();
         console.log(data);
         $.ajaxSetup({async:false});
         $.post('/CensusDatabase/database_scripts/NationalAgeGender.php', {remove_age_gender : data });
         nationalAgeGender();
     }
     if (id == 'arizona age gender') {
         var data = $('[name="remove_age_gender[]"]').serialize();
         $.ajaxSetup({async:false});
         $.post('/CensusDatabase/database_scripts/ArizonaAgeGender.php',  {remove_age_gender : data });
         arizonaAgeGender();
     }
}

PHP:

if(isset($_POST['remove_age_gender'])) {
    $boxData = $_POST['remove_age_gender'];
    $removeValue = array();
    parse_str($boxData, $removeValue);
    removeRow($removeValue, $link);
}

function removeRow($removeValue, $link) {
    $removeValue = $removeValue['remove_age_gender'];
    $value = $removeValue[0];
    $query = "DELETE FROM national_age_gender_demographics WHERE age_group='$value'";
    $escapedQuery = mysqli_real_escape_string($query);
    $result = mysqli_query($link,$escapedQuery);
    if(!$result)  die( "Query: " . $escapedQuery . "\nError:" . mysql_error() );
}

有人知道我做错了什么吗?

最佳答案

不要在查询 上使用mysqli_real_escape_string,而是在查询参数(即$value)上使用。作为列值的字符串文字语法一部分的 ' 被错误地转义,导致语法无效。

更好的是,您应该使用准备、绑定(bind)参数和执行:

$query = "DELETE FROM national_age_gender_demographics WHERE age_group = ?";
$stmt = mysqli_prepare($link, $query);
mysqli_stmt_bind_param($stmt, "s", $value);
mysqli_execute($stmt);

关于PHP/MySQL - 删除不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16348266/

相关文章:

php - 如何在Centos中安装mbstring扩展?

javascript - 将数组值传递给js

mysql - 特定字符串日期的所有列名的总和

php - Mysql PHP调用表行时出错

php - 检查用户名/密码是否与用户名/加密密码匹配。漩涡加密和盐

postgresql - 限制 Postgres 删除

php - Codeigniter - 如何设置多个模板布局和 Assets (css、js 和图像)?

php - 如何使用 Google Analytics PHP API 列出管理配置文件?

mysql - 使用 Join 删除孤立记录

mysql - SQL 删除除每个唯一值的最后 N 行之外的所有行