sql >> Databasteknik >  >> RDS >> Mysql

Python MySQL escape specialtecken

Detta är en av anledningarna till att du ska använda parameterbindning a> istället för att formatera parametrarna i Python.

Gör bara så här:

sql = 'UPGRADE inventory_server set server_mac = %s where server_name = %s'

Sedan:

cur.execute(sql, macs, host)

På så sätt kan du bara hantera strängen som en sträng och låta MySQL-biblioteket ta reda på hur man citerar och undviker det åt dig.

Utöver det får du generellt sett bättre prestanda (eftersom MySQL kan kompilera och cachelagra en fråga och återanvända den för olika parametervärden) och undvika SQL-injektionsattacker (ett av de vanligaste sätten att bli hackad).



  1. Ange kolumnvärden som kolumnnamn i SQL-frågeresultatet

  2. Returnera den n:e posten från MySQL-frågan

  3. Vad är det bästa sättet att returnera enum-värden i MySQL?

  4. array_push() vs. $array[] =.... Vilket är snabbast?