关于原生sql以及php框架中的数据库方法

简介: 最近在使用原生sql将数据写入数据库的时候遇到了一个小问题,然后使用php框架中的数据库方法写入就没有问题。这个让我多少对使用原生sql有了一些新的想法。在我看来,在框架中使用原生sql,会让程序的执行速度加快。你在使用框架的数据库方法的时候,框架底层执行的也是SQL,框架通过方法给你拼装的。我先说下我遇到的问题:

最近在使用原生sql将数据写入数据库的时候遇到了一个小问题,然后使用php框架中的数据库方法写入就没有问题。

这个让我多少对使用原生sql有了一些新的想法。

在我看来,在框架中使用原生sql,会让程序的执行速度加快。

你在使用框架的数据库方法的时候,框架底层执行的也是SQL,框架通过方法给你拼装的。

我先说下我遇到的问题:

Json在数据库中存储的格式如下:

css

复制代码

[{"id":1,"title":"\u5f80\u91cc\u5934\u52a0\u56fe\u7247","score":10,"type":"image","mark":"aaaa","value":"https://www.mools.net/lims/api/laravel/storage/app/report/6559/49198/61201a381821c786d5df61ac9bb576a5.jpg"},{"id":2,"title":"wen ben","score":20,"type":"text","mark":"123,12121","value":"Qwqwqwq"},{"id":3,"title":"\u8868\u683c","score":30,"table":[["#","@","#@"],["#123","@123","123"],["@@","##","#@#"]],"type":"table","mark":"biaoge , mark\u4e0d\u597d\u7528","suanfa":"2121212121","value":[["Qq","AQQ","Qq"],["Qq","Qq","123"],["Qq","Qq","Qq"]]}]

中文是以这种unicode编码存储的,然后,我是用原生SQL将这个json字符串写入数据库的时候,数据库默认将字符串中的 \ 转义符给去掉了,存进数据库的数据变成了下面的样子:

css

复制代码

[{"id":1,"title":"u5f80u91ccu5934u52a0u56feu7247","score":10,"type":"image","mark":"aaaa","value":"https://www.mools.net/lims/api/laravel/storage/app/report/6559/49198/61201a381821c786d5df61ac9bb576a5.jpg"},{"id":2,"title":"wen
ben","score":20,"type":"text","mark":"123,12121","value":"Qwqwqwq"},{"id":3,"title":"u8868u683c","score":30,"table":[["#","@","#@"],["#123","@123","123"],["@@","##","#@#"]],"type":"table","mark":"biaoge
, marku4e0du597du7528","suanfa":"2121212121","value":[["Qq","AQQ","Qq"],["Qq","Qq","123"],["Qq","Qq","Qq"]]}]

除了中文一切正常。

但是中文这部分,就显示不出来了。

但是在使用框架中封装的数据库方法的时候,框架的底层对存入数据库的数据有处理,就不会发生我使用原生SQL写入的时候的问题。

我之前一直是比较喜欢使用原生SQL,说什么执行速度那都是后话,主要是,我不需要学习每种框架封装的数据库方法,这个玩意,每个框架都不一样,学习成本还是比较高。再就是接手一个项目使用的是新的框架,也不会有太多时间去搞这些。

但是框架在设计的时候,通常是会考虑到对数据的一个处理的,这也是使用框架封装的数据库方法的一个优势。

我认为使用原生SQL的几个优点:

1:相对于使用框架封装的数据库方法,快。

2:学习成本相对较低,万物皆可SQL,上手快

框架封装数据库方法的优点:

1:对数据有完善的处理方法

2:就单一框架而言,数量的使用其封装的数据库方法,可以让开发变得更快

3:提供了统一的sql标准,万物的本质就是sql,那个玩意,真的是想怎么写就怎么写,对于能力残次不齐的开发项目组来说,使用框架封装的数据库方法能更好的统一sql的标准。

所以,我觉得,在某些方面,使用框架封装的方法可能相对使用原生SQL要好。

这篇文章大概就是分享一下,我关于使用原生sql遇到的问题的思考吧。

关于这个,你是怎么看的呢?

有好的建议,请在下方输入你的评论。

欢迎访问个人博客 guanchao.site

欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的

目录
相关文章
|
10月前
|
SQL 机器学习/深度学习 人工智能
从“写SQL”到“聊数据”:NL2SQL如何用自然语言解锁数据库?
本文系统性地阐述了自然语言转SQL(NL2SQL) 技术如何让非技术背景的业务分析师实现数据自助查询,从而提升数据驱动决策的效率与准确性。
从“写SQL”到“聊数据”:NL2SQL如何用自然语言解锁数据库?
|
8月前
|
安全 API PHP
PHP中实现CORS跨域资源共享的方法
通过这种方式,你可以在PHP应用中灵活地实现CORS,以支持跨域Web应用的需求。
559 15
|
9月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
721 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
8月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
410 6
|
10月前
|
SQL 人工智能 Java
用 LangChain4j+Ollama 打造 Text-to-SQL AI Agent,数据库想问就问
本文介绍了如何利用AI技术简化SQL查询操作,让不懂技术的用户也能轻松从数据库中获取信息。通过本地部署PostgreSQL数据库和Ollama模型,结合Java代码,实现将自然语言问题自动转换为SQL查询,并将结果以易懂的方式呈现。整个流程简单直观,适合初学者动手实践,同时也展示了AI在数据查询中的潜力与局限。
1296 8
|
10月前
|
存储 关系型数据库 MySQL
MySQL数据库中进行日期比较的多种方法介绍。
以上方法提供了灵活多样地处理和对比MySQL数据库中存储地不同格式地日子信息方式。根据实际需求选择适当方式能够有效执行所需操作并保证性能优化。
894 10
|
10月前
|
SQL 人工智能 Linux
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
429 5
|
11月前
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
510 11
|
11月前
|
SQL 缓存 监控
SqlRest让SQL秒变Http API,还支持20+数据库(含国产数据库)
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
11月前
|
SQL 存储 数据库
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
SQL Server Management Studio (SSMS) 21 - 微软数据库管理工具
1447 0