when someone abandons you,it is him that gets loss because he lost someone who truly loves him but you just lost one who doesn’t love you.
记录一下在 python 中调用 sqlite3 使用 like 进行模糊查询时引发的惨案
一条普通的 sqlite3 like 查询语法如下:
1 | SELECT name FROM id_data WHERE name LIKE "%1%" |
在 py 代码中,使用 sqlite3 的查询语句想当然的变成下面这样:
1 | conn.execute( |
然鹅,执行以后报错了
1 | sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 0, and there are 1 supplied. |
不对呀,我明明用了一个占位符,为啥说不需要用参数呢
终于,在网上找到解释,因为 statement 占位符 “?” 处在双引号和单引号的双重包裹之中,检测不出来是个占位符
那咋办,直接用 python 的字符串操作?
1 | conn.execute( |
看样子,好像也能解决,但是,占位符的作用好像是避免 sql 注入的安全问题,那怎么用占位符写?
1 | conn.execute( |
事实上,用 execute 并不能执行多条语句,即使直接用上面那种字符串操作解决,似乎也没有什么问题?
be slow to promise and quick to perform.