我需要从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''附近使用正确的语法
答案 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'
之后缺少逗号。