query.exec,query.prepare+bindValue+exec的区别
问题来源
不管什么情况,都是直接用query.prepare+bindValue+exec,傻傻的分不清,其实也根本没想过,直到昨天发现无法返回数据的故障才开始琢磨。
直接说吧:query.exec(您的SQL请求)
这是一种简单的方法,比如只有一个查询,不带其它参数,如:select * from table,特点就是简单
query.prepare(您的SQL) + bindValue(请求的参数) + exec()
这是一种复杂的方式,使用在带参数访问的情况,如:
query.prepare(“select * from table where name=:youName”);
query.bindValue(“:yourName”,yourName);
query.exec();
还有就是:insert delete update 等语句,也必须用这种方式。
划重点了:
若您只是想执行一个简单的请求,并没有什么参数,那请不要用后一种方法,否则你可能得不到任何数据。