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

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

目录
相关文章
|
20天前
|
存储 SQL 关系型数据库
PHP与数据库交互:从基础到进阶
【10月更文挑战第9天】在编程的世界里,数据是流动的血液,而数据库则是存储这些珍贵资源的心脏。PHP作为一门流行的服务器端脚本语言,其与数据库的交互能力至关重要。本文将带你从PHP与数据库的基本连接开始,逐步深入到复杂查询的编写和优化,以及如何使用PHP处理数据库结果。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供宝贵的知识和技巧,让你在PHP和数据库交互的道路上更加从容不迫。
|
22天前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
104 3
|
4天前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
11 2
|
9天前
|
SQL JSON Java
没有数据库也能用 SQL
SPL(Structured Process Language)是一款开源软件,允许用户直接对CSV、XLS等文件进行SQL查询,无需将数据导入数据库。它提供了标准的JDBC驱动,支持复杂的SQL操作,如JOIN、子查询和WITH语句,还能处理非标准格式的文件和JSON数据。SPL不仅简化了数据查询,还提供了强大的计算能力和友好的IDE,适用于多种数据源的混合计算。
|
10天前
|
前端开发 PHP 数据库
原生PHP网站源码
原生PHP网站通常指的是使用纯PHP代码编写的网站,没有使用框架或者类库来简化开发流程。
19 1
|
23天前
|
SQL 数据库 数据库管理
数据库SQL函数应用技巧与方法
在数据库管理中,SQL函数是处理和分析数据的强大工具
|
23天前
|
SQL 存储 关系型数据库
添加数据到数据库的SQL语句详解与实践技巧
在数据库管理中,添加数据是一个基本操作,它涉及到向表中插入新的记录
|
11天前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)
|
18天前
|
SQL 存储 关系型数据库
mysql 数据库空间统计sql
mysql 数据库空间统计sql
36 0
|
22天前
|
SQL 存储 监控
串口调试助手连接SQL数据库的技巧与方法
串口调试助手是电子工程师和软件开发人员常用的工具,它能够帮助用户进行串口通信的调试和数据分析