Python コードを開発する場合、多くの場合、プリペアド ステートメントを使用して SQL データベースと対話する必要があります。これにより、より効率的な実行と SQL インジェクション攻撃に対する保護が可能になります。
コード内で、"PREPARE" ステートメントと "EXECUTE" ステートメントを直接使用しようとすると、構文エラーが発生します。これは、Python にはプリペアド ステートメント用の独自のメカニズムがないため、代わりに MySQLdb ライブラリの機能を使用する必要があるためです。
修正されたコードは次のようになります。
sql = ('INSERT INTO {} (date, time, tag, power) VALUES ' '(%s, %s, %s, %s)'.format(self.db_scan_table)) for (d, t, tag, power) in <your loop>: self.cursor.execute(sql, (d, t, tag, power))
または、次のようになります。カーソル オブジェクトのexecute_many() メソッドを使用すると、複数の行を一度に挿入できます。
data = [(d, t, tag, power) for <your loop>] self.cursor.executemany(sql, data)
これにより、大幅に改善されます。特に大規模なデータセットのパフォーマンス。
以上がPython の MySQL で準備されたステートメントを効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。