关于原生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

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

目录
相关文章
|
26天前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
45 0
|
26天前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之视图
【数据库SQL server】关系数据库标准语言SQL之视图
36 0
|
9天前
|
SQL 存储 关系型数据库
sql数据库的相关概念与底层介绍
sql数据库的相关概念与底层介绍
31 0
|
24天前
|
SQL 人工智能 运维
数据库基础入门 — SQL排序与分页
数据库基础入门 — SQL排序与分页
16 0
|
24天前
|
SQL 人工智能 运维
数据库基础入门 — SQL运算符
数据库基础入门 — SQL运算符
15 0
|
24天前
|
SQL 人工智能 运维
数据库基础入门 — SQL
数据库基础入门 — SQL
26 0
|
25天前
|
SQL 存储 数据库
【数据库SQL server】自学终极笔记
【数据库SQL server】自学终极笔记
74 0
|
26天前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据更新
【数据库SQL server】关系数据库标准语言SQL之数据更新
22 0
|
26天前
|
SQL 数据库 数据库管理
【数据库SQL server】关系数据库标准语言SQL的基本知识
【数据库SQL server】关系数据库标准语言SQL的基本知识
35 0
|
26天前
|
SQL 算法 JavaScript
【数据库SQL server】关系型数据库的基本知识
【数据库SQL server】关系型数据库的基本知识
128 0

热门文章

最新文章