作者 主題: [已解決]mysql 有沒有類似php的htmlspecialchars語法  (閱讀 4286 次)

0 會員 與 1 訪客 正在閱讀本文。

hayaman212

  • 活潑的大學生
  • ***
  • 文章數: 372
    • 檢視個人資料
因為我要製作一個搜尋的
當user輸入keyword之後
會搜尋content這個欄位
但是db裡面的content這個欄位存有html的標籤
要如何不搜尋有html標籤的部分?

$sql="SELECT * FROM mydb WHERE content= %$keyword%"
« 上次編輯: 2009-06-23 23:01 由 hayaman212 »

owen_lu

  • 可愛的小學生
  • *
  • 文章數: 5
    • 檢視個人資料
回覆: mysql 有沒有類似php的htmlspecialchars&#
« 回覆 #1 於: 2009-06-22 23:25 »
分兩個欄位存如何?

一個欄位存有 html tag 的內容

一個欄位存沒有 html tag 的內容, 並對它做 Full Text Index

然後針對沒有 html tag 的欄位做搜尋

ps.

full text index 對中文沒什麼作用

若是要搜中文資料就別用 full text index 了


Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: mysql 有沒有類似php的htmlspecialchars語法
« 回覆 #2 於: 2009-06-23 10:26 »
建議樓主重新規劃資料表欄位, 先想清楚需求..

hayaman212

  • 活潑的大學生
  • ***
  • 文章數: 372
    • 檢視個人資料
回覆: mysql 有沒有類似php的htmlspecialchars語法
« 回覆 #3 於: 2009-06-23 14:06 »
content這個欄位的UI是使用html編輯器給user使用
所以html的標籤和使用者輸入的文字一定是會存在同一個欄位的

這應該沒辦法分兩個欄位去儲存data才是

Darkhero

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3728
  • 性別: 男
    • 檢視個人資料
    • ㄚ凱隨手紀
回覆: mysql 有沒有類似php的htmlspecialchars語法
« 回覆 #4 於: 2009-06-23 14:14 »
content這個欄位的UI是使用html編輯器給user使用
所以html的標籤和使用者輸入的文字一定是會存在同一個欄位的

這應該沒辦法分兩個欄位去儲存data才是

你真的有好好想過?..怎麼可能會不行?...
不過就是在存的時候把資料複製一份而已...有那麼難嗎?....

$content = trim($_POST['content'])
insert into table(`field1`,`field2`) values($content,strip_tags($content));
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯.
『灌水才是重點,發文只是順便』
『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
Blog: http://blog.darkhero.net/
秘密基地: http://www.darkhero.net/comic/
目前服務的網站: http://www.libook.com.tw/

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: mysql 有沒有類似php的htmlspecialchars語法
« 回覆 #5 於: 2009-06-23 18:32 »
樓主這麼堅持的話, 那試試 REGEXP() 吧

http://dev.mysql.com/doc/refman/5.0/en/regexp.html#operator_regexp

hayaman212

  • 活潑的大學生
  • ***
  • 文章數: 372
    • 檢視個人資料
回覆: mysql 有沒有類似php的htmlspecialchars語法
« 回覆 #6 於: 2009-06-23 23:00 »
真的有想過,但沒想到這個方法

讓在下佩服了....

content這個欄位的UI是使用html編輯器給user使用
所以html的標籤和使用者輸入的文字一定是會存在同一個欄位的

這應該沒辦法分兩個欄位去儲存data才是

你真的有好好想過?..怎麼可能會不行?...
不過就是在存的時候把資料複製一份而已...有那麼難嗎?....

$content = trim($_POST['content'])
insert into table(`field1`,`field2`) values($content,strip_tags($content));