sql >> データベース >  >> RDS >> Mysql

Pythonmysql.connector.errors。 %sは引用符でSQLクエリに渡されます

    MySQLPythonがクエリの変数プレースホルダーに標準の文字列形式マーカー( "%")を使用しているという事実は、混乱を招く可能性があります。

    Pythonのdb-apiのクエリプレースホルダーは用です whereで使用されます 句とinsert およびupdate ステートメントであり、SQLインジェクションなどを回避するために、db-apiによって適切にサンティファイ/エスケープ/引用されます。これらは、テーブル名またはフィールド名に使用されることは想定されていません。

    したがって、ここで必要なのは、文字列フォーマットを使用してクエリを作成することです。

    sql =  'SHOW TABLES FROM %s;' % (db_name[0],)
    cursor.execute(sql)
    

    db_name[0]以降 信頼できるソースからのものであり、ここではセキュリティの問題はありません。




    1. MySQLXDevAPI成功したステータスを返す方法

    2. Postgres-隣接リストをネストされたJSONオブジェクトに変換します

    3. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信リンク障害

    4. csvファイルからのデータのインポート