日常学习记录——QT链接mysql报错

问题描述

参照的是qt登录界面简单制作,是真的保姆级别了!!!
可能是我用的QT版本问题(5.12.6),mysql驱动没有默认配置
我新建工程的时候选择的是MinGW-32/64位的编译器,可能也有点问题,导致现在这个驱动报错真的不太好定位。
按照一些方法进行操作,还修改了一些源代码,估计可能还人为引入了一些其他错误。

目前运行代码时仍显示驱动问题。
驱动报错


拟解决方案

1、重新安装一遍QT,在进行驱动补充操作。
2、先实现不链接数据库的登陆界面功能。
3、后续驱动补充操作参考:
Qt 5 MySQL数据库驱动没有加载(QSqlDatabase: QMYSQL driver not loaded)的解决方法
4、换一种工具,用最近自己较为熟悉的语言以及IDE如python的tkinter。

在使用 Qt 结合 MySQL 执行 SQL 语句时,如果你发现字段名称包含下划线 `_` 导致报错,可能并非是因为下划线本身引起的问题。实际上,在 SQL 中,字段名是可以合法地包含下划线的。但如果出现类似情况,请考虑以下几个方面: ### 可能原因: 1. **字段名冲突**:某些时候数据库系统可能会将带下划线的标识符误解为保留字或者是某种内部结构的一部分。尽管这种情况较少发生,但为了保险起见,你可以用反引号 `` ` 字段名` `` 将其包裹起来明确指明这是一个普通的列名。 2. **编码问题**:如果表或字段名字中有非 ASCII 字符,并且这些字符与下划线组合在一起,有可能触发了编码相关的异常。确保整个系统的字符集设置一致(如全部设为 UTF-8),并且确认客户端和服务端之间的传输也没有丢失信息。 3. **SQL 预处理中的问题**:当利用绑定变量或者其他高级功能构造动态 SQL 时,如果没有正确引用涉及的元素就可能导致意外的结果。例如忘记添加必要的分隔符或者错误匹配占位符位置都会造成这样的结果。 4. **Qt 的 QSqlQuery API 使用不当**:虽然理论上只要 SQL 正确就可以顺利执行,但是如果不恰当地调用了诸如 prepared() 方法之类的辅助函数,则仍有机会破坏原生查询文本格式化过程而引发错误。 5. **权限不足**:访问特定模式下的对象需要足够高的授权等级才能成功完成操作;否则即使是看似正确的语法也仍然会被拒绝掉。 --- ### 推荐解决方案: 1. 直接给每个敏感部位加上标示保护层——即把所有含有特殊符号(不仅仅是_)的部分都放进 backticks里。 ```sql SELECT `column_with_underscore` FROM mytable; ``` 2. 检查数据源初始化阶段所指定的各项参数设定是否合理准确; 3. 审核应用程序生成最终发送出去的实际 SQL 行程记录日志文件查看是否存在其他隐形隐患; 4. 如果确实遇到棘手状况难以单独排查清楚的话不妨尝试切换成另一种 ORM Framework 或者纯 JDBC 方式对比测试一番找出症结所在之处。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值