sql >> Database >  >> RDS >> Mysql

python mysql ophaalquery

Dit verwart zowat iedereen die met MySQLDB werkt. U geeft argumenten door aan de functie execute, geen vervanging van python-tekenreeksen. De %s in de querytekenreeks wordt meer gebruikt als een voorbereide instructie dan als een vervanging van een Python-tekenreeks. Dit voorkomt ook SQL-injectie, omdat MySQLDB de escape voor u zal doen. Zoals u het eerder had (met behulp van % en tekenreeksvervanging), bent u kwetsbaar voor injectie.

  1. Gebruik geen aanhalingstekens. MySQLDB zal ze daar plaatsen (indien nodig).
  2. Gebruik een , in plaats van een %. Nogmaals, je geeft een tuple door als argument voor de functie execute.

    self.dbc.execute("select * from car where reg=%s" , (reg,))



  1. Wat is het verschil tussen MySQL BOOL- en BOOLEAN-kolomgegevenstypen?

  2. ORA-02287:volgnummer is hier niet toegestaan

  3. XML doorgeven als parameter aan opgeslagen procedure in Oracle

  4. Prestaties verbeteren door lezen en schrijven te gebruiken om databaseverkeer te splitsen met Moodle 3.9