PHP sql UPDATE not working

PHP sql UPDATE not working

本文关键字:working not UPDATE sql PHP      更新时间:2023-09-26

我试图更新我的数据库中的表,把我的更新查询不工作。我已经检查了很多次代码,但我看不出有什么问题。我调用一个php文件和发送数据到它与javascript。什么好主意吗?

这是我的php文件

include 'db-connect.php';
$db->autocommit(false);
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$id = $db->real_escape_string($request->ID);
$from = $db->real_escape_string($request->From);
$to = $db->real_escape_string($request->To);
$from_ampm = $db->real_escape_string($request->FromAMPM);
$to_ampm = $db->real_escape_string($request->ToAMPM);
$sql = "update OpeningHours set From = '$from', To = '$to', FromAMPM = '$from_ampm', ToAMPM = '$to_ampm' ";
$sql .= "where ID = '$id'";
$res = $db->query($sql);
$message = array();
if($db->affected_rows <= 0)
{
    $db->rollback();
    $message['error'] = "Could not edit. Contact IT manager.";
    echo json_encode($message);
    die();
}
$db->commit();
$db->close();
$message['error'] = "";
$message['success'] = "Edit Success!";
echo json_encode($message);

这是javascript部分:

var request = $http({
                method: "post",
                url: "updateOpeningHoursItem.php",
                data: {
                    ID: $scope.openingHoursID,
                    From: $scope.from,
                    To: $scope.to,
                    FromAMPM: $scope.fromAMPM,
                    ToAMPM: $scope.toAMPM
                },
                headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
            });
            request.success(function (data) {
                if(data.error === "")
                {
                    $scope.emptyOpeningHoursFields();
                    $scope.resetOpeningHoursEditForm();
                    swal("Success", data.success, "success");
                }
                else
                {
                    swal("Ops!", data.error, "error");
                }
            });

你好,

        $host = 'localhost'; 
        $user = 'root';
        $password = '';
        $database = 'youdatabasename';
        $con = mysql_connect($host,$user,$password);
        $res = mysql_select_db($database,$con);
        $postdata = file_get_contents("php://input");
        $request = json_decode($postdata);
        $id = $db->real_escape_string($request->ID);
        $from = $db->real_escape_string($request->From);
        $to = $db->real_escape_string($request->To);
        $from_ampm = $db->real_escape_string($request->FromAMPM);
        $to_ampm = $db->real_escape_string($request->ToAMPM);
        $sql = "UPDATE OpeningHours set From = '".$from."', To = '".$to."', FromAMPM = '".$from_ampm."', ToAMPM = '".$to_ampm."' where ID = '".$id."'";
        $result = mysql_query($sql) or die(mysql_error());
        if($result==0)
        {
            $message['error'] = "Could not edit. Contact IT manager.";
            echo json_encode($message);
            die();
        }

请尝试与此代码可能是工作,如果有任何遗漏的东西。

您在UPDATE语句中使用了保留字,因此您必须使用反引号正确地转义它们。

修改SQL语句为

$sql = "UPDATE OpeningHours 
        SET `From` = '".$from."', 
            `To` = '".$to."', 
            `FromAMPM` = '".$from_ampm."', 
            `ToAMPM` = '".$to_ampm."'
        WHERE `ID` = '".$id."'";

您还在查询中使用了保留词。把它们放在反引号里。您可以通过回显查询来调试它。查询应该是这样的。

$sql = "UPDATE OpeningHours set From = '".$from."', To = '".$to."', FromAMPM = '".$from_ampm."', ToAMPM = '".$to_ampm."' where ID = '".$id."'";
    $result = mysql_query($sql) or die(mysql_error());