0

フォームからの入力を MySQL データベースに保存しようとしていますが、次のエラーが表示されます。

保存されません。SQL 構文にエラーがあります。'desc, remarks) VALUES( 'a', 'b', 'c' at line 1 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

私の完全なPHPコードは次のとおりです。

if (isset($_POST['region'], $_POST['desc'], $_POST['remarks']) && !empty ($_POST['region']) && !empty($_POST['desc']) && !empty($_POST['remarks']) )

            {

            $region = mysql_escape_string($_POST['region']);
            $desc = mysql_escape_string($_POST['desc']);
            $remarks = mysql_escape_string($_POST['remarks']); 


            mysql_query("INSERT INTO register (region, desc, remarks) VALUES(

            '$region', 
            '$desc', 
            '$remarks') ") or die('Not saved. ' . mysql_error()); 


             }

私が間違っていることを教えてください。以前にこれを行ったことがありますが、この場合はエラーが見つからないようです。:(

4

2 に答える 2

0

他の人がすでに指摘しているように、descSQL キーワードですが、クエリを機能させるために列名を変更する必要はありません。おそらくこれを考慮するでしょうが、間違いなく必須ではありません。秘訣は、SQL エンジンを混乱させないように、バッククォート " ` " を使用して常に列名を引用する必要があることです (これは常に行うのが良い習慣です)。したがって、これはエラーをスローします。

INSERT INTO register (region, desc, remarks) ...

しかし、これはまったく問題ありません:

INSERT INTO register (`region`, `desc`, `remarks`) ... 
于 2012-12-02T19:03:15.563 に答える
0

変えようとする

'$region' 

 '".$region."'

そしてこれをする

      mysql_query("INSERT INTO register (`region`, `desc`, `remarks`) VALUES(

        '".$region."', 
        '".$desc."', 
        '".$remarks."') ") or die('Not saved. ' . mysql_error()); 


         }
于 2012-12-02T19:18:51.373 に答える