Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Dokumentasi tidak jelas mysqldb Python

Saya mempelajari ini dengan melihat di /usr/lib/pymodules/python2.6/MySQLdb/connections.pyuntuk melihat bagaimana ini disebut connection.escape . Sedikit mengendus mengarah keMySQLdb.converters.conversions . Berikut cuplikannya:

{0: <class 'decimal.Decimal'>,
 1: <type 'int'>,
...
 <type 'dict'>: <built-in function escape_dict>,
 <type 'NoneType'>: <function None2NULL at 0xae9717c>,
 <type 'set'>: <function Set2Str at 0xae9709c>,
 <type 'str'>: <function Thing2Literal at 0xae971b4>,
 <type 'tuple'>: <built-in function escape_sequence>,
 <type 'object'>: <function Instance2Str at 0xae971ec>,
 <type 'unicode'>: <function Unicode2Str at 0xae9710c>,
 <type 'array.array'>: <function array2Str at 0xae9725c>,
 <type 'bool'>: <function Bool2Str at 0xae97294>}

Anda dapat menggunakannya seperti ini:

import MySQLdb
import MySQLdb.converters
import datetime

now=datetime.datetime.now()
connection=MySQLdb.connect(
    host=HOST,user=USER,passwd=PASS,db=MYDB)
print(connection.escape((1,2,now),MySQLdb.converters.conversions))
# ('1', '2', "'2010-07-24 19:33:59'")

PS. Mengenai Bobby Tables:Untuk penggunaan normal MySQLdb, Anda tidak perlu menghindari argumen secara manual. Cukup gunakan argumen parametris saat memanggil cursor.execute , dan MySQLdb akan secara otomatis mengutip argumen untuk Anda.

Misalnya:

sql='insert into students (name,grade,date) values (%s, %s, %s)'
args=("Robert'); DROP TABLE Students; --",60,now)   # no manual quotation necessary
cursor=connection.cursor()
cursor.execute(sql,args)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pengindeksan yang benar saat menggunakan operator OR

  2. Kesalahan SQL Saya tidak dapat mengetahuinya

  3. SQLSTATE[HY000]:Kesalahan umum:1298 Zona waktu tidak diketahui atau salah:jendela 'UTC'

  4. SQL Untuk Menemukan Kategori Paling Populer

  5. MySQL master ganda