aiomysqly的占位符是本来就是%s
Topic source编程好多细节啊 我有好多个<font color='red'>"为什么那么写呢"</font> 想问
好不容易把元类那章写ORM弄熟了,想自己来写这章的内容,结果只能写出大体结构,对照老师的代码反复推敲,为什么要那么写呢? 一定要自己写,多想想为什么. 自己回答吧: %s 既是mysql的占位符,又是python str的占位符,所以先将sql语句里的占位符用?表示,当字符串组建完成后再来replace('?','%s'),这样就不冲突了
一起讨论啊,'?'是Mysql里的占位符,不同sql中的占位符不一样,在数据库那一章讲过。好像和数据库的安全性相关。SQL是一种语言,我们就好像把这种语言翻译成python语言的一步。
- 1
SpringShaw
为什么元类里构造默认的sql语句时用 '?' 占位
后面execute(sql语句) 的时候又换回来呢?
是有'?'做占位符的场景还是老师自己习惯了