MySQL UPDATE在phpMyAdmin中运行,但在PHP中不运行

时间:2017-07-29 12:21:46

标签: php mysql

我需要从PHP更新数据库记录。

这是我的PHP代码:

if(isset($_FILES["fileEdit"])){
    if($_FILES["fileEdit"]["error"] == 0){

        $id = $_POST["id"];
        $productName = $_POST["name"];
        $productDesc = $_POST["desc"];
        $productPrice = $_POST["price"];
        $productPath = "images/" . $_FILES["fileEdit"]["name"];

        move_uploaded_file($_FILES["fileEdit"]["tmp_name"], $path . $_FILES["fileEdit"]["name"]);

        $sql = "UPDATE products SET name='$productName', description='$productDesc', price='$productPrice' img_src='$productPath' WHERE id='$id'";

        $result = $dbCon->query($sql);

        echo "edit--> " . $_FILES["fileEdit"]["name"] . " -> no errors, " . $productName . " desc: " . $productDesc . " price: " . $productPrice . "id: ".$id;
    }else{
        echo $_POST["name"]." -> error";
    }
}

这是我的JavaScript:

$("#submitEditBtn").click(function(){

        var file_data = $('#editImg').prop('files')[0];
        var form_data = new FormData();

        if(file_data)
            form_data.append('fileEdit', file_data);
        else
            form_data.append('noImgChanges', "true");

        form_data.append('name', $("#editP_name").val());
        form_data.append('desc', $("#editP_desc").val());
        form_data.append('price', $("#editP_price").val());
        form_data.append('id', $("#productEditing").attr("name"));

        $.ajax({
            url: 'imgParser.php',
            dataType: 'text',
            cache: false,
            contentType: false,
            processData: false,
            data: form_data,
            type: 'POST',
            success: function (response) {
                console.log(response);
            },
            error: function (response) {
                console.log("ERROR OCCURED");
            }
        });

    });

所以,发生的是,我填写信息(输入,图像等),然后按下按钮,该按钮发送带有项目ID的请求作为数据。 PHP应该用新信息更新记录,但它没有,但如果我在SQL控制台中输入完全相同的命令并用一些数据替换变量,它将成功更新它。同样在chrome控制台中,它会输出所有数据(正在回显)。

赞赏任何想法/建议

编辑:

我在控制台中打印了错误(如果有的话),我得到了

  

您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行'img_src ='images / 80sKIDTee.png'WHERE id ='1''附近使用正确的语法

4 个答案:

答案 0 :(得分:3)

添加SQL语句中缺少的

$sql = "UPDATE products SET name='$productName', description='$productDesc', price='$productPrice', img_src='$productPath' WHERE id='$id'";

答案 1 :(得分:1)

您在img_src =' $ productPath'附近缺少,在查询中

 $sql = "UPDATE products SET name='$productName', description='$productDesc', price='$productPrice',img_src='$productPath' WHERE id='$id'";

答案 2 :(得分:0)

将表名称变为简单引号或尝试使用error.log查询sql查询并在phpmyadmin中运行

答案 3 :(得分:0)

我觉得如果不能正常工作,你就可以免于问题,因为你没有清理输入,而其他人可能会在某些时候最终清理你的数据库,但是

将您的SQL代码更新为:

 $sql = "UPDATE products SET name='$productName', description='$productDesc', price='$productPrice', img_src='$productPath' WHERE id='$id'";

您在price='$productPrice'之后缺少逗号。