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 var の周りにいくつかの引用符 (' ') を入れてみませんか?

WHERE hotel_id = '{$hot_id}'

于 2012-07-19T21:32:37.057 に答える
-1

アップデートのどこかに $hot_id があるはずです:

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