pythonmysqlのパラメータ化の説明

最初のタイプ:文字列のスプライシングで問題を解決できますが、SQLインジェクションを回避するために、このように記述することはお勧めしません。

2番目の関数を見てみましょう:.format()関数を使用します。この関数を使用してsqlをパラメーター化することがよくあります。

例えば:

select * from XX where id in (1,2,3)

次の値をパラメータ化します。

select * from XX where id in ({}).format(‘1,2,3’)

印刷して確認できます。元のSQLとまったく同じです。

補足知識:pythonおよび [** mysql **](https://cloud.tencent.com/product/cdb?from=10680)相互作用/ローカル構成ファイルの読み取り/相互作用エラーレポート

ローカル構成ファイルを読み取ってmysql接続を自分で書き込む場合は、次の点に注意する必要があります。

構成ファイルconfig.iniに書き込みます。

[ sql]
ip = xxx
port = xxx
table = xxx
uname = xxx
passwd = xxx

例:test.pyファイル

# 最初にインポート
import pymysql
# これは、構成ファイルのコンテンツを取得するためのものです
host = conf.get('sql','ip')
port = conf.get('sql','port')
database = conf.get('sql','table'),
user = conf.get('sql','uname')
password = conf.get('sql','passwd')

# mysqlデータベース接続を確立します

conn = pymysql.connect(host=host, port=port, db=database, user=user, password=password, charset='utf8') #エラーがあるかもしれないことに注意してください、後で言います
sql ='xxx' #sqlステートメント
cs1 = conn.cursor() #実行オブジェクトを作成する
count = cs1.execute(sql) #SQLステートメントを実行します。戻り値は、データベースで影響を受け、カウントに割り当てられた行の数です。
conn.commit() #データベースの変更を送信する
cs1.close() #実行オブジェクトを閉じる
conn.close() #データベース接続オブジェクトを閉じます

エラー:

can only concatenate tuple (not “bytes”) to tuple

これは、構成ファイルで読み取られた特定の結果が配列であるためです。それを印刷すると、次のことがわかります。

しかし、最後のpython読み取り構成ファイルで、最初の[global]を読み取ろうとしましたが、配列形式がありません。これがなぜなのかわかりません。メッセージを残して、一緒に通信することを歓迎します。

[ Errno 11004] getaddrinfoが失敗し、次の

django.db.utils.OperationalError:(2003、「MySQLサーバーに接続できません」)djangoがmysqlを操作するときのエラー:

ローカル構成ファイルを参照するときにエラーが報告された場合、このエラーは構成ファイルの読み取り時にも問題になる可能性があります。

あなたはこのようにそれを解決しようとすることができます:

  1. ローカルのツールまたはコマンドを使用するか、接続を試みます。機能しない場合は、ネットワークまたは権限の問題である可能性があります。

  2. 上記が可能な場合は、ローカルファイルを読み取る代わりに、別のpythonファイルを直接書き込み、pyファイルに情報を直接書き込みます。操作の結果はOKです。これは、構成ファイルの読み取りの問題です。

  3. 次に、読んでみて、読んだ結果を印刷すると、問題を見つけることができます

python mysqlのパラメーター化に関する上記の説明は、エディターによって共有されるすべてのコンテンツです。参照を提供したいと思います。

Recommended Posts

pythonmysqlのパラメータ化の説明
Pythonのタプルの添え字
Python開発でのパンダの使用
Python開発でのnumpyの使用
Pythonでの辞書の詳細な使用法
pythonでのosパッケージの使用
pythonでのタプルの使用法
pythonでのrbの意味を理解する
pythonでのJWTユーザー認証の実装
Python3クローラーでのAjaxの使用
python標準ライブラリのglobの分析
pythonにdjangoモジュールをインストールする方法
pythonでのシェル実行の知識ポイント
pythonの関数
Python3.9の7つの機能
pythonでのadbの機能は何ですか
pythonでのリストの意味と使用法
ubuntuでpythonをアンインストールした結果、非常に
Pythonで実装された特徴抽出操作の例
03.Pythonエントリの演算子
Centos7にMySQL5.7をインストールします
Pythonの結合関数
12.Python3でのネットワークプログラミング
pythonでステートメントを印刷する
UbuntuでのPythonでのGDALのインストールと使用
Python構文の基本
pythonで番号のリストを理解する方法
ubuntu環境でのMySQLのインストールと簡単な実践(1)
Pythonでの同時リクエスト
Pythonの基本構文
Pythonの基礎知識(1)
Ubuntuにpythonをインストールする
Pythonでのコンテキスト管理
pythonのPrettytableモジュール
pythonの算術演算子
pythonでguiを書く
PythonでのMongoDBの使用
09.Python3の共通モジュール
PythonのStr文字列
Pythonでの計算ジオメトリ
CentOS環境でのMySQLインポートファイルの失敗の問題
pythonで円の領域を見つける方法
Pythonのハードコア操作を1分で学ぶ
Pythonで一般的に使用されるサードパーティライブラリの大規模なインベントリ
Pythonでの同時リクエスト(パート2)
Pythonの基盤を統合する(4)
Python(7)の基盤を統合する
pythonリスト(LIST)の深い理解
wavファイルのPython分析
Python(6)の基盤を統合する
Pythonでの継承について話す
PythonクローラーのJSの分析
UbuntuでのAnacondaの使用
栄光のパイソンキング壁紙
Python(5)の基盤を統合する
gomokuプログラムのPython実装
Pythonサンドボックスエスケープの分析
Python3.10のいくつかの新機能
Pythonマルチスレッドの深い理解
Pythonオブジェクト指向プログラミングの分析
OpenCVインストールのPythonバージョン