0

これが私のクエリです

// Put it all into the database
mysql_query("INSERT INTO 
    orders (
        item_id, 
        order_id, 
        contact_first_name, 
        contact_last_name,
        contact_email,
        contact_phone,
        business_name,
        business_type,
        business_website,
        business_address,
        business_city,
        business_state,
        business_zip,
        business_phone,
        promo_code,
        add_details
    ) 
    VALUES(
        ". $post_data['item_id'] .", 
        ". $order_hash .",
        ". $post_data['contact_first_name'] .", 
        ". $post_data['contact_last_name'] .",
        ". $post_data['contact_email'] .",
        ". $post_data['contact_phone'] .",
        ". $post_data['business_name'] .",
        ". $post_data['business_type'] .",
        ". $post_data['business_website'] .",
        ". $post_data['business_address'] .",
        ". $post_data['business_city'] .",
        ". $post_data['business_state'] .",
        ". $post_data['business_zip'] .",
        ". $post_data['business_phone'] .",
        ". $post_data['promo_code'] .",
        ". $post_data['add_details'] ."
    ) 
") or die(mysql_error());

現在、空の文字列がないようにすべてのフォームに入力すると、このエラーが発生します。ハッシュは $order_hash です:

「フィールド リスト」の不明な列「76a051b750ce9363cec3df9961d2fd6b」

空白のままにすると、次のようになります。

SQL 構文にエラーがあります。27 行目の '1, , , AL, , , )' の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

二重引用符、一重引用符などを使用して複数のバリエーションを試しましたが、理解できないようです。これは、以前に行ったような単純な挿入クエリである必要がありますが、これを使ってムックを実行しただけです。ご協力ありがとうございます:)

4

1 に答える 1

3

引用符内に文字列を記述する必要があります。それ以外の場合、mysql はそれらを列として受け取ります。例えば:

...
'". $post_data['contact_first_name'] ."', 
'". $post_data['contact_last_name'] ."',
...

またはより単純 (クエリに二重引用符を使用する場合)

...
'{$post_data['contact_first_name']}', 
'{$post_data['contact_last_name']}',
...
于 2012-04-06T05:14:22.967 に答える