2011-07-04 11 views
0

[OK]をこのPHP $ _POST ['username']変数があり、私はMYSQLを介してユーザーのすべてを照会する必要があります。唯一の問題は、それが私にエラーを投げつけ続けることです。PHPとMYSQL - 変数のクエリ

私は

$query = mysql_query("SELECT * FROM user WHERE username = `$user`"); 
$query = mysql_query("SELECT * FROM user WHERE username = ".$user); 

ない私が間違ってやっていることを確認してみた

$user = $_POST['username']; 
$query = mysql_query("SELECT * FROM user WHERE username = $user"); 

のようなもの。

+0

何のエラー???? (余分な疑問符を無視すると、コメント文字の制限を回避することができます。私は驚くことではなく、エラーの内容を尋ねます) – aib

+0

クエリ文字列に直接ユーザー入力を使用しないでください。 'SQLインジェクション'について読んでください。 'パラメータ化されたクエリ 'について読んでください。 – aib

答えて

1

あなたの問題は、SQL内の文字列を単一引用符で囲む必要があるということです。

最も好ましい方法はPDOです。 (mysql_real_escape_stringと一緒に)しかし、sprintf何が掲載されていることをよりよく暫定的なアプローチである:

$query = sprintf("SELECT u.* 
        FROM USER u 
        WHERE u.username = '%s'", 
        mysql_real_escape_string($_POST['username'])); 

$result = mysql_query($query); 

我々はLittle Bobby Tablesを忘れるなかれ;)

+0

私はlol'd <3 xkcd –

1
$user = $_POST['username']; 
$query = ('SELECT * FROM user WHERE username LIKE "' . $user . '"'); 
0

使用この:

$query = mysql_query("SELECT * FROM user WHERE username = '$user'");