douchongbc72264 2015-06-02 04:50
浏览 39
已采纳

PHP sql UPDATE无法正常工作

I'm trying to update a table in my database, put my update query does not work. I have checked the code many times, but I can't see anything wrong with it. I'm calling a php-file and sending data over to it with javascript. Any ideas?

This is my php-file:

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);

And this is the javascript part:

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");
                }
            });
  • 写回答

3条回答 默认 最新

  • dsfliu1129 2015-06-02 04:57
    关注

    You used reserved words in your UPDATE statement, therefore you have to escape them properly using backticks.

    Change your SQL statement to

    $sql = "UPDATE OpeningHours 
            SET `From` = '".$from."', 
                `To` = '".$to."', 
                `FromAMPM` = '".$from_ampm."', 
                `ToAMPM` = '".$to_ampm."'
            WHERE `ID` = '".$id."'";
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看