-1

「SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、近くで使用する正しい構文を確認してください...」という mysql エラーが表示されます。

私のコードの基本は次のとおりです。

最初に、選択メニュー オプションにカテゴリ テーブルの行を入力します。これはうまくいきます:

 <select id="dropdown-select" name="Name">
<option value="" id="dropdown-option">Please select a category.</option>
<?php
    $query_categories = "SELECT * FROM categories";
    $result_categories = mysql_query($query_categories) or die(mysql_error());

    while($categories_row = mysql_fetch_array($result_categories)) {
        echo '<option id="dropdown-option" value="' . $categories_row['cat_name'] . '">' . $categories_row['cat_name'] . '</option>';
    }
?>
</select>

後で、トランザクション テーブルにフォームを送信すると (データを取得した上記のテーブルはカテゴリ テーブルでした。これは問題になる可能性がありますか?)、エラーが発生します。上記のコードbcに関連していると思いますフォーム送信からこの要素を削除すると、エラーなしで残りの値がデータベースに書き込まれます。

 if(!isset($_POST['Name'])) {
    die('You must select an income or expense from the drop down menu.');
} else {
$Name = $_POST['Name'];
}
 //create query
$query = "INSERT INTO transaction (month, trans_name, budgeted, actual) VALUES ('$Month', '$Name', $Budgeted', '$Actual')";
$result = mysql_query($query) or die("Error in query: $query. " . mysql_error());

ご協力いただきありがとうございます。

4

3 に答える 3

2

$Budgeted の前の挿入ステートメントに一重引用符がありません

INSERT INTO transaction (month, trans_name, budgeted, actual) VALUES ('$Month', '$Name', '$Budgeted', '$Actual')"
于 2013-10-05T16:44:56.173 に答える
1

「SQL 構文にエラーがあります」というエラーは正確です。

$query = "INSERT INTO transaction (month, trans_name, budgeted, actual) 
          VALUES ('$Month', '$Name', $Budgeted', '$Actual')";
Look here, you missed something ----^

'ステートメントに欠落があり、構文エラーが発生しています。一重引用符を入れると、準備完了です。

于 2013-10-05T16:55:25.147 に答える
1

データベースで として定義されているいくつかのフィールドがある場合VARCHARCHAR.

また、PHP スクリプトからデータベースに文字列値を挿入する場合は、それを一重引用符 ( ') で囲む必要があります。

あなたの場合、 なしsemicolonsで文字列を挿入しているため、MySQL でエラーが表示されます。

次のように一重引用符を追加して、ステートメントを修正する必要があります$budget

$query = "INSERT INTO transaction (month, trans_name, budgeted, actual) VALUES ('$Month',
 '$Name', '$Budgeted', '$Actual')";
    ------^
于 2013-10-05T16:49:58.493 に答える