私のデータベースにSELECTクエリを作成するには、this pageを参照しています。しかし、私はこのエラーを取得しています:mysql.connector - SQL構文にエラーがあります。 1行目の '%s'近く
mysql.connector.errors.ProgrammingError: 1064 (42000): 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 '%s' at line 1
は、ここで問題とコードのセクションです:
import mysql.connector
cnx = mysql.connector.connect(user='xxxx', password='yyyy',
host='zzzz.us-west-2.rds.amazonaws.com',
database='iiii')
cursor = cnx.cursor()
# ...
givenUsername = 'testUser123'
checkUserAuthQuery = ("SELECT password FROM UserAuth WHERE username = %s")
userAuthInfo = (givenUsername)
cursor.execute(checkUserAuthQuery, userAuthInfo)
# ...
注:
- %s
とINSERTクエリを実行すると、それが動作します。
- %s
を'testuser123'
に置き換えても機能します。
'userAuthInfo'を文字列ではなくタプルにしましたか? –
それは、IgnacioVazquez-Abramsに感謝しました。私は決してそれを理解していないだろう。 –
DB-API 2.0では、2番目の引数を置換する値のシーケンスにする必要があるため、有用な例外をスローしないためにコネクタにエラーがあると言います。 –