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:還有呢……
希望有大神指點迷津哈。
謝謝。
關於字數
沒人知道多長也還是有個長度的,你仍然要對這個長度做出一個評估,並且選取一個合適的類型
post的尺寸受到多個地方的限制,你的web伺服器(nginx或者apache),你的php.ini的配置,甚至還有web伺服器和php執行逾時時間這兩個的限制(因為資料量如果太大的話,傳輸時間也需要相應增加,很可能會在沒有傳輸完之前就逾時了)
是的
你可以把所有限制都去掉,或者改的很大很大很大很大,然後一個post提交你的伺服器記憶體就直接被炸了(比如post一個10G的資料)
關於字串截取
PHP當然可以截取字串,不過如果你要處理中文,建議使用mb_開頭系列的函數,比如mb_strcut,mb_strlen等等等,避免出現截斷半個字的問題
並且分隔也可以很方便的處理,只要你定義好自己的特殊分隔字元,你可以看explode函數
但如果你真的是想幾十萬字的書本層級的文字儲存起來的話,你應該考慮分章節儲存,而一本書則可以對應很多章節