PHP MySQL 关于文章字段,内容分页的几个小问题?
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:还有呢……
希望有大神指点迷津哈。
谢谢。
Answers
关于字数
-
没人知道多长也还是有个长度的,你仍然要对这个长度做出一个评估,并且选取一个合适的类型
-
post的尺寸受到多个地方的限制,你的web服务器(nginx或者apache),你的php.ini的配置,甚至还有web服务器和php执行超时时间这两个的限制(因为数据量如果太大的话,传输时间也需要相应增加,很可能会在没有传输完之前就超时了)
-
是的
-
你可以把所有限制都去掉,或者改的很大很大很大很大,然后一个post提交你的服务器内存就直接被炸了(比如post一个10G的数据)
关于字符串截取
PHP当然可以截取字符串,不过如果你要处理中文,建议使用mb_开头系列的函数,比如mb_strcut,mb_strlen等等等,避免出现截断半个字的问题
并且分隔也可以很方便的处理,只要你定义好自己的特殊分隔符,你可以看explode函数
但如果你真的是想几十万字的书本级别的文字存储起来的话,你应该考虑分章节存储,而一本书则可以对应很多章节