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

MySQLクエリでデータベース名をパラメータ化する安全な方法はありますか?

    データベース名(または列名やテーブル名)はデータ値ではないため、プレースホルダーの適切な使用法ではありません。これをしたいのは通常悪い兆候です。 DBAのみがcreate databaseを発行できる必要があります 、そうすることはかなりの特権を必要とするので。ほとんどのアプリケーションでは、DBAがデータベースの作成を発行し、作成されたデータベースを、dbapi.Connectionへの引数で使用されるパラメーターとして使用する必要があります。

    これが必要であると確信し、入力のソースを信頼し、入力に無効な文字がないかチェックした場合は、Pythonで次のように置換するだけです。

    def createDB(dbConn, dbName):
        c = dbConn.cursor()
        query = """CREATE DATABASE %s;""" % dbName
        c.execute(query)
    


    1. どちらが速くて軽いか-mysqli&PDO

    2. PHPtotMySQL画像のアップロードが機能しない

    3. GI12.1.0.2とセグメンテーション違反をコンパイルできません

    4. MySQL 8のmy.cnfでsql_modeを設定するにはどうすればよいですか?