0

亲爱的朋友,我正在尝试更新重新编码,但总是出现以下消息

“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在第 9 行的 '' 附近使用正确的语法”

代码看起来不错,但我不明白我做错了什么,有人可以帮忙。提前致谢。

<?php
if(isset($_POST['edit'])){
         // this id wil be pulled from the URL above. 
        $hot_id     = $_GET['hotl'];  
        $hotel_name = escape_value($_POST['title']);
        $hotel_star = escape_value($_POST['category']);
        $shortdes   = escape_value($_POST['shortdes']);
        $country    = escape_value($_POST['country']);
        $address    = escape_value($_POST['address']);
        $pcode      = escape_value($_POST['pcod']);
        $city       = escape_value($_POST['city']);         

        $query = "UPDATE Hotels SET  
                  hotel_name = '{$hotel_name}',
                  star ='{$hotel_star}',
                  description = '{$shortdes}',
                  country = '{$country}',
                  hotel_address = '{$address}',
                  hotel_postal_code = '{$pcode}',
                  hotel_city = '{$city}'
                  WHERE hotel_id = {$hot_id}";                
            $result = mysql_query($query, $connection);

            if(mysql_affected_rows() == 1){
            //Success
            }else{
            die("Some thing wrong with the Upadate: ". mysql_error());
            }

        }else{
        //error ocurred
        }
?>

我在 PHP 和 Mysql 论坛上发布我的问题,因为我不知道问题出在哪里。

4

2 回答 2

1

调试 SQL 语句(如上所述)的最简单方法是在提交查询之前回显查询,并准确查看要发送到数据库的内容。话虽这么说,你为什么不尝试在你的 $hot_id 变量周围加上一些引号(''):

WHERE hotel_id = '{$hot_id}'

于 2012-07-19T21:32:37.057 回答
-1

Somewhere in the update there should be $hot_id:

"UPDATE Hotels SET  
    hotel_name = '{$hotel_name}', hotel_id = '{$hot_id}', etc
于 2012-07-19T21:41:28.723 回答