2012-02-28 24 views
0

この行:$quey1="select * from clients WHERE USER == $current_user->user_login;";MYSQL PHP where query error

これは不明なエラーを返します。私のコードには単純な構文エラーがあるに違いありませんが、わかりません。 BTW $current_user->user_login;は、たとえばadminのようなユーザーを返します。

何が悪いと思いますか?私はこれで本当に新しい(初めてPHPとMySQLに触れる)

あなたの助けに感謝!

答えて

4
$quey1 = "SELECT * FROM clients WHERE USER = '" . $current_user->user_login . "'" 

また、これらの後になります。

  • は、あなたが引用符でcurrent_user->user_loginをラップする必要が
  • プリペアドステートメント
  • PDO
+0

tha nks :)。これは素晴らしい作品です!あなたは "。"のためですか?彼らはどういう意味ですか? – cmplieger

+0

これは文字列の整列を意味しますが、主な問題は欠落した単一のqoutesと間違った演算子(==)です。 –

0

を脱出。それ以外の場合、MySQLはそれがカラムだと考えます。エラーは、「admin」という列がないことです。

1

MySQLではdouble equals演算子は必要ありません。また、文字列の比較には引用符が必要です。

$quey1 = "select * from clients WHERE USER = '{$current_user->user_login}'"; 
2

PHP変数は(一重引用符は、文字列リテラルとして取り扱われるように設けられた二重引用符が使用されている(そう$somethingが文字通り$something、ない変数として解釈される)SQLクエリで使用することができ、それらの値を単純に置換されていますクエリの時間は可変ではありませんが、1つの変数に置き換えるのが最も良い方法です。また、クエリのセミコロンは、カラムとして解釈されるため、必要ありません。==は、ちょうど=データを抽出する際にはデータを設定しません。

$user = $current_user->user_login; 
$quey1 = "select * from clients WHERE USER == $user";