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

PythonMySQLdbエラー-これを引き起こしているもの

    クエリを作成するコードは、文字列値を引用しようとしていません:

    cmd = "INSERT INTO resulttest (category, value, timestamp) VALUES (" + key + ", " + str(value) + ", " + str(timestamp) + ")"
    

    印刷したSQLステートメントを見てください:

    INSERT INTO resulttest (category, value, timestamp) VALUES (composed, 2, 1343186948.8)
    

    「カテゴリ」を引用するべきではありませんか?

    そもそも文字列演算を使用してSQLステートメントを作成するべきではありません。これがSQLインジェクションの脆弱性の発生方法です。代わりに、プレースホルダーを使用して、MySQLライブラリにプレースホルダーを処理させる必要があります:

    c.execute(
        "INSERT INTO resulttest (category, value, timestamp) VALUES (?, ?, ?)", 
        (key, value, timestamp)
    )
    


    1. SQLServer2012の拡張イベントに対する重要な変更

    2. NHibernateおよびSqlServerでのデータ監査

    3. php / MySQL..iを使用してCSSスタイルを動的に変更する方法各ユーザーに固有のテーマを作成したいですか?

    4. PostgreSQLでの日付、時刻、間隔の表現