2012-03-12 7 views
0

にメールアドレスを入力:私はMySQLのテーブルに電子メールを挿入しようとしている、と私はエラーを取得していますMySQLデータベース

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 19, '[email protected]')' at line 1

私はインターネット上で見て、照合順序やコードの異なる組み合わせを試してみましたしかし、何も動作しません。ここで問題は「@」ですか? FacebookのJSONユーザーオブジェクトのデコードからこのメールアドレスを取得しています。ここに私のコードから抜粋は以下のとおりです。

$user = json_decode(file_get_contents($jsonurl)); 
$userid = $user->id; 
if($user->gender == "male") $usergender = TRUE; 
else $usergender = FALSE; 
$useremail = $user->email; 

mysql_select_db("kirkstat", $con); 
$result = mysql_query("INSERT INTO table (id, access, gender, age, email) VALUES ($userid, '$access_token', $usergender, 19, '$useremail')"); 
if (!$result){ 
    echo("error.\n"); 
    die('Invalid query: ' . mysql_error()); 
} 

idは、アクセスは、性別がバイナリーvarchar型BIGINTですが、年齢はintであり、電子メールはvarchar型です。

ありがとうございました!

+0

$ usergenderは '$ usergender'を引用する必要があります。数字には引用符を必要としません。 – bumperbox

答えて

4

空の文字列に文字列としてfalseをキャストします。空の文字列は、整数列(または ''を持たないので、任意の種類の列値)に対してSQLでは有効ではありません。

false/trueの代わりに0/1を使用します。

+0

ありがとう、それはとても役に立ちました! – mye

0

@記号はテキストのとおりです。おそらくエラーの原因となっているのはあなたの「性別」の価値だと思います。完全なクエリをエコーアウトする必要があります。

関連する問題