欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

thinkPHP MySQL 关于文章字段,内容分页的几个小问题?

程序员文章站 2022-06-09 07:52:03
...
PHP+MySQL

文章内容字段用什么类型呢?
1:文章字数可能很长,没人知道会有多长,到底MySQL能保存多少字?
2:太长了post提交能行吗?
3:写文章是不是还是要限制一个长度的呢?
4:不想要被限制。

当文章内容太长了就要进行分页
分页怎么做呢?
1:使用sql语句
使用 MySQL字符串函数:字符串截取 left(), right(), substring(), substring_index()
形如:select left(content,90) as content from post where id = '$id' 这样的吗?

这个字符串截取是MySQL独有的函数吗?PDO有吗?MySQL是按截取长度截的,还是先都取出来再截取呢,如果是再截取那和PHP处理有什么不同呢,效率问题呢?

2:使用分隔符标记分割
这个怎么做呢,是一次性读出来,然后PHP按照分隔符作分割是吗?

3:还有呢……

希望有大神指点迷津哈。
谢谢。

回复内容:

PHP+MySQL

文章内容字段用什么类型呢?
1:文章字数可能很长,没人知道会有多长,到底MySQL能保存多少字?
2:太长了post提交能行吗?
3:写文章是不是还是要限制一个长度的呢?
4:不想要被限制。

当文章内容太长了就要进行分页
分页怎么做呢?
1:使用sql语句
使用 MySQL字符串函数:字符串截取 left(), right(), substring(), substring_index()
形如:select left(content,90) as content from post where id = '$id' 这样的吗?

这个字符串截取是MySQL独有的函数吗?PDO有吗?MySQL是按截取长度截的,还是先都取出来再截取呢,如果是再截取那和PHP处理有什么不同呢,效率问题呢?

2:使用分隔符标记分割
这个怎么做呢,是一次性读出来,然后PHP按照分隔符作分割是吗?

3:还有呢……

希望有大神指点迷津哈。
谢谢。

关于字数

  1. 没人知道多长也还是有个长度的,你仍然要对这个长度做出一个评估,并且选取一个合适的类型

  2. post的尺寸受到多个地方的限制,你的web服务器(nginx或者apache),你的php.ini的配置,甚至还有web服务器和php执行超时时间这两个的限制(因为数据量如果太大的话,传输时间也需要相应增加,很可能会在没有传输完之前就超时了)

  3. 是的

  4. 你可以把所有限制都去掉,或者改的很大很大很大很大,然后一个post提交你的服务器内存就直接被炸了(比如post一个10G的数据)

关于字符串截取
PHP当然可以截取字符串,不过如果你要处理中文,建议使用mb_开头系列的函数,比如mb_strcut,mb_strlen等等等,避免出现截断半个字的问题
并且分隔也可以很方便的处理,只要你定义好自己的特殊分隔符,你可以看explode函数

但如果你真的是想几十万字的书本级别的文字存储起来的话,你应该考虑分章节存储,而一本书则可以对应很多章节