sqlite3_exec()中sql语句的书写格式问题
一个很小的细节,没注意直接让我浪费了两个小时
是什么呢?
原来的代码:
修改之后的代码:
对,原来的代码仅仅只是少了%s处的单引号,我一直以为是我的这句sql语句其他地方写错了,每个标点符号号在两个小时里重写了不知道多少遍,开始怀疑人生。
最开始我认为是两个%s之间不需要逗号(,),后来删了之后重新试了一下,报了一个这样的错误:
好,我有认为是少了空格,才会连在一起,加上空格,又报了这样一个错误
再来,我有认为是要逗号,但是都要要加上单引号(与发现错误擦肩而过),加上逗号在加上单引号。还是报错
之后没法了,去网上找,发现都是Python与sqlite的联合使用,即使有sqlite3和C语言的连个使用也是说标点符号错了,看到这,顿时就人傻了,就那么几个标点符号,我都再三确认了不下十遍。失望而归。还是自己在琢磨挣扎一下。
我有到ubunto下面自己创建了数据库,用添加数据的语句敲了一遍,发现完全没有问题。我直接复制下来,这下准没标点符号的错误了吧。
还是报错:换了一个错
我又去ubunto下想办法故意写错sql语句,找到这样的错误原因,最后发现了,如果ubunto中如果将字段写错就会报这样的问题。
我有回到代码中看字段名,发现也没有问题。崩了,心态没了。
没办法自己写的代码,躺着也要改完
再来!能改的地方都改了,难道是我输入的%s有问题?想到这我才恍然大悟,我在ubunto中写sql语句的时候,我的值都是加上“ ”的,但是代码中,光光一个%s输入进去的不就是一个字符串吗,没有双引号啊。又想到双引号不能嵌套(不用转义字符\),于是我将%s加上单引号。成功了!!!
真就是细节决定成败。
总的来说还是对于sql语句与C语言联合使用的理解不到位。
所以希望其他小伙伴不要遇到相同的问题了。