class Database(object):
def __init__(self,ip_address,datetime_now):
self.db_connec = mysql.connector.connect(user = DATABASE_USER, password = DATABASE_PASS, host = DATABASE_HOST, database = DATABASE)
self.ip = ip_address
self.datetime_now = datetime_now
def run_query(self, query):
if db_connec == None:
raise mysql.connector.DatabaseError
return None
def log_threat(self):
lol = "ass"
self.cursor = self.db_connec.cursor()
self.cursor.execute("INSERT INTO unauthorized_clients (ip_address, time) VALUES ({}, {})".format(self.ip, lol))
#INSERT INTO unauthorized_clients (ip_address, time) VALUES ("trtr", "test")
私はlog_threat関数を呼び出してこのエラーを取得しています。 mysqlターミナル(navicat)でクエリを実行するとうまく動作しますが、ここではこのエラーが発生します。PythonコードからのmySQLエラー
IPが取り除かれている理由をライン1
で「)、0.1お尻を」マニュアルは近くを使用する 権利構文についてはMySQLサーバのバージョンに対応するチェック?
私は印刷(self.ip)をログインしたとき、私は127.0.0.1おそらく
は、私はパラメータ化クエリについて学ぶために今持っている:)ありがとう - は} {周りに引用符を追加します適切かつ推奨されるソリューション。 %sの2番目の解決策は私に奇妙な.decodeソケットエラーを与えました –
@MichaelPresman:間違ったプレースホルダを推測した可能性があります。それは '%s'の代わりに'? 'にすることができます。あなたは 'mysql.connector.paramstyle'でチェックできるはずです。 – mhawke
self.cursor.execute( "INSERT INTO unauthorized_clients(ip_address、time)VALUES(?、?)"、(self.ip、lol)) - >すべてのパラメータがSQL文で使用されているわけではありません。とにかくありがとう –