2011-01-24 10 views
0

私はこれをしばらくの間作っていますが、私が作っているものより簡単ですが、私はそれを手に入れることができません。私はいくつかのコードを持っています。これは私のテーブルから1または0の列挙型を照会しようとしているので、これは私がこれをしなければならないものです。MySQL Query Enum

$username = 'test' 
$passResult = mysql_query("SELECT usrSetPass FROM members WHERE usr='.$username.'"); 

今私は私が考えるすべての接続のものを下に持って、私はそこには、エラーを取得していないが、私は私の反響にこの事をプリントアウトするとき、私はこれを取得、

HERESに私のエコー:

echo 'Hello, '.$username.', you Result is: '.$passResult.'!'; 

私は何を取得したいことはされています。今、私が得るものです

Hello, test, your Result is: 1 

or 

Hello, test, your Result is: 0 

Hello, test, your Result is: Resource id #6 

私は同じことをしても、誰かがこれを指摘できるかどうか私が間違っていることは分かりません。この列挙型は、ユーザがコンピュータで生成されたバージョンではなくパスワードを個人的に設定したかどうかを確認するために、本質的にブール値に使用されているものです。

+0

無関係のコメント:[準備された文](http://stackoverflow.com/questions/1290975/how-to-create-a-secure-mysqlを使用してください-prepared-statement-in-php)を使用して、 '$ username'をクエリ文字列に連結するだけです。一般的にははるかに安全で、SQLインジェクションによるセキュリティ侵害が少なくなります。 –

答えて

2

mysql_queryは結果リソースを返します。結果リソースは、結果がバッファされるメモリへのポインタです。その結果セットには多くの行を含めることができます。多くの行を選択できるため、必要な行を取得してから、それらの行から必要な列を取得する必要があります。

/* execute the query and get a result resource back */ 
$passResult = mysql_query("SELECT usrSetPass FROM members WHERE usr='" . mysql_real_escape_string($username) . "'"); 

/* retrieve the first row from $passResult */ 
$row = mysql_fetch_assoc($passResult); 

/* assign the usrSetPass column's value from that row to $passed */ 
$passed = $row['usrSetPass']; 

また、クエリが間違っています。二重引用符で囲んだので、一重引用符とドットを内部で使用すると、実際に文字列を切り離したり、$ usernameを連結したりすることはありません。私は上記を訂正しました。

+0

ここで何をしているのか理解していますが、今私はこれを手に入れています 警告:mysql_fetch_assoc()はパラメータ1がリソースであることを期待しています、ブール値はC:\ wamp \ www \ Login \ Test.php 助けてくれてありがとう – awmayhall

+0

クエリが実行に失敗した場合、 'mysql_query'はfalseを返します。そういうことが起こったので、存在しない結果セットから行を得ることはできません。 'echo mysql_error($ passResult)'は、MySQLが送信したエラーメッセージを表示します。 –

+0

さて、大丈夫です。それを私が直した。あなたの助けに感謝それは非常に感謝しています。 – awmayhall

0

mysql_queryは値を返しません。リソースを返します(マニュアルのhereを参照)。

返された結果リソースは、返されたデータにアクセスするために結果テーブル(mysql_fetch_array()またはmysql_fetch_assoc()など)を扱うために別の関数に渡される必要があります。あなたの最初のコードに基づいて

例:

$username = 'test'; 
$passResult = mysql_query("SELECT usrSetPass FROM members WHERE usr='".$username."'"); 
while ($row = mysql_fetch_assoc($passResult)) { 
    echo $row['usrSetPass']; 
}