PHP PDO准备的带有MySQL的delete语句在Ajax调用中失败

PHP PDO准备的带有MySQL的delete语句在Ajax调用中失败,php,jquery,mysql,ajax,pdo,Php,Jquery,Mysql,Ajax,Pdo,我在一个用AJAX调用的PHP文件中有一个失败的PDO-Prepared-DELETE语句 我的AJAX调用如下所示: var data = {action: "deleteTask", value: "1"}; $.ajax({ type: "POST", dataType: "json", url: "ajax.php", data: data, success: function(data) {

我在一个用
AJAX
调用的
PHP
文件中有一个失败的PDO-Prepared-DELETE语句

我的
AJAX
调用如下所示:

var data = {action: "deleteTask", value: "1"};

$.ajax({    
        type: "POST",
        dataType: "json",
        url: "ajax.php", 
        data: data,
        success: function(data) {                
            alert(data);
        },
        error: function() {
            alert("Something's wrong!");                
        }
});
我的
ajax.php
如下所示:

<?php 
...   
function delete(){
            $return = "something must be right...";

            require('connect.php');                            

            $sql = "DELETE FROM 'tasks' WHERE 'task_id' = ?";
            $stmt = $dbcon->prepare($sql);             
            $stmt->execute(array($_POST["value"]));

            $return["json"] = json_encode($return);
            echo json_encode($return);
        } 
?> 
我已经确定了一些事情:
1) 如果我注释掉与PDO语句相关的所有内容,我的ajax调用就可以正常工作
2) 我的
connect.php
文件工作正常,因为我已经用标准的
HTML
表单对它进行了测试(而不是从
ajax
调用它)
3) 数据库的表名和字段名没有拼写错误
4)
$\u POST[“value”]
提供了与我试图
删除的记录相对应的正确值
5) 当我在与PDO相关的每一行上设置制动点时,当我在以下行时:
$stmt->execute(数组($\u POST[“value”])警报(“出了问题!”)Ajax
中的code>(在该行之后,
Ajax.php
中不会执行任何操作)


我花了很多时间试图找出这个问题的症结所在,并阅读了所有关于这个问题的帖子,但我的问题似乎很特殊,因此任何帮助都将不胜感激!谢谢。

您似乎忘记添加代码了:

delete();
一旦添加它,您将实际调用该函数,而不仅仅是声明它


另一个选项是,尝试将PDO设置为打印错误。然后,您将在控制台中重新打印错误。

似乎您忘记添加代码:

delete();
一旦添加它,您将实际调用该函数,而不仅仅是声明它


另一个选项是,尝试将PDO设置为打印错误。然后,您将在控制台中重新打印错误。

似乎您忘记添加代码:

delete();
一旦添加它,您将实际调用该函数,而不仅仅是声明它


另一个选项是,尝试将PDO设置为打印错误。然后,您将在控制台中重新打印错误。

似乎您忘记添加代码:

delete();
一旦添加它,您将实际调用该函数,而不仅仅是声明它


另一个选项是,尝试将PDO设置为打印错误。然后,您将在控制台中重新打印错误。

您应该查看浏览器的网络响应。它应该显示一个SQL错误。如果使用MySQL,您的查询应该如下所示:

DELETE FROM `tasks` WHERE `task_id` = ?
如果是PostgreSQL:

DELETE FROM "tasks" WHERE "task_id" = ?

您应该查看浏览器的网络响应。它应该显示一个SQL错误。如果使用MySQL,您的查询应该如下所示:

DELETE FROM `tasks` WHERE `task_id` = ?
如果是PostgreSQL:

DELETE FROM "tasks" WHERE "task_id" = ?

您应该查看浏览器的网络响应。它应该显示一个SQL错误。如果使用MySQL,您的查询应该如下所示:

DELETE FROM `tasks` WHERE `task_id` = ?
如果是PostgreSQL:

DELETE FROM "tasks" WHERE "task_id" = ?

您应该查看浏览器的网络响应。它应该显示一个SQL错误。如果使用MySQL,您的查询应该如下所示:

DELETE FROM `tasks` WHERE `task_id` = ?
如果是PostgreSQL:

DELETE FROM "tasks" WHERE "task_id" = ?



你好,巴茨!谢谢你的建议!不幸的是,事实并非如此。我调用“…”部分中的函数。在这一部分中有一些验证内容来检查调用是否是Ajax调用,如果是,则调用函数。但是,我知道函数会被调用,因为我在PDO语句的第一行上找到了第一个断点。您是否尝试打印PDO错误?我刚试过。显然$stmt没有问题。这个问题实际上与数据库连接未建立和$dbcon未启动有关,即使在所需的connect.php运行之后也是如此。也许您以前没有调用GLOBAL就从fanction调用$dbcon?您好,batz!谢谢你的建议!不幸的是,事实并非如此。我调用“…”部分中的函数。在这一部分中有一些验证内容来检查调用是否是Ajax调用,如果是,则调用函数。但是,我知道函数会被调用,因为我在PDO语句的第一行上找到了第一个断点。您是否尝试打印PDO错误?我刚试过。显然$stmt没有问题。这个问题实际上与数据库连接未建立和$dbcon未启动有关,即使在所需的connect.php运行之后也是如此。也许您以前没有调用GLOBAL就从fanction调用$dbcon?您好,batz!谢谢你的建议!不幸的是,事实并非如此。我调用“…”部分中的函数。在这一部分中有一些验证内容来检查调用是否是Ajax调用,如果是,则调用函数。但是,我知道函数会被调用,因为我在PDO语句的第一行上找到了第一个断点。您是否尝试打印PDO错误?我刚试过。显然$stmt没有问题。这个问题实际上与数据库连接未建立和$dbcon未启动有关,即使在所需的connect.php运行之后也是如此。也许您以前没有调用GLOBAL就从fanction调用$dbcon?您好,batz!谢谢你的建议!不幸的是,事实并非如此。我调用“…”部分中的函数。在这一部分中有一些验证内容来检查调用是否是Ajax调用,如果是,则调用函数。但是,我知道函数会被调用,因为我在PDO语句的第一行上找到了第一个断点。您是否尝试打印PDO错误?我刚试过。显然$stmt没有问题。这个问题实际上与数据库连接未建立和$dbcon未启动有关,即使在所需的connect.php运行之后也是如此。也许您以前从fanction调用$dbcon而没有调用GLOBAL?为什么要逃避勾号?我无法首先显示勾号,它们只返回灰色背景字体专栏。现在已经成功了-谢谢弗雷德-ii-!我正在使用MySQL。我两种方法都试过了,但仍然不起作用。我也试过不用撇号。谢谢。你为什么要躲开虱子?我