2017-11-07 2 views
-1

管理者アカウントまたはユーザーアカウントの場合は入力したアカウントを特定し、管理テーブルに入力されているユーザー名とパスワードを検索する場合は「usersテーブル」に検索し、これは私が1列(複数可)MySQL:最初のテーブルの値を検索します。存在しない場合は、2番目のテーブルで検索してください

これは私が

Query = "select admin.user,admin.pass from admin where user= '" & username.Text & "' and pass= '" & password.Text & "'" not in users.user,users.pass" 
+0

エラー:operand should co ntain 1 column –

+0

**警告**:[SQLインジェクションのバグ](http://bobby-tables.com)については、このコードが一杯になっているので学びましょう。 – tadman

答えて

0

エラーをしようとしたクエリがあるが含まれている必要があり、オペランドましエラーですかなり明白です:唯一の単一の列が決定するためにINまたはNOT IN句の通過を許可しますその列に割り当てられた関連値。

あなたはこの例のようにサブクエリからの単一の列を提供することで、クエリを修正することができます。代わりにパラメータ化クエリのバージョンを使用し、むしろ値の文字列を連結より:

Dim Query As String = "SELECT admin.user, admin.pass FROM admin WHERE user = @username AND pass = @password OR user [NOT] IN (SELECT users.user FROM users WHERE user = @username AND pass = @password)" 

同様の問題を

Dim Query As String = "SELECT admin.user, admin.pass FROM admin WHERE user = '" & username.Text & _ 
         "' AND pass = '" & password.Text & _ 
         "' OR user [NOT] IN (SELECT users.user FROM users WHERE user = '" & username.Text & _ 
         "' AND pass = '" & password.Text & "')" 

NBを:

Operand Should Contain 1 Column - MySQL NOT IN

関連する問題