我有一個大的dB表,我需要搜索和替換某些字符等。其中一些是特殊字符。PHP SQL find™和其他特殊字符
首先,我試圖在將語句更改爲Update replace類型之前找到它。
下面運行正常的
$Search_for = '%apple%';
但在這個例子中,我們將集中於™(從現場粘貼)
$search_what = 'LongDescription';
$Search_for = '%™%';
SearchToSee($conn,$search_what,$Search_for);
和特種炭失敗
所以功能
function SearchToSee ($conn,$search_what,$Search_for) {
$stmt = $conn->prepare(" SELECT * FROM table_name WHERE $search_what Like '$Search_for' ");
$stmt->execute();
foreach ($stmt as $row) {
print_r ($row);
}
那麼如何格式化$Search_for =
?
由於進一步原因和其他系統我必須運行每個查找替換字符不同,並用自己的不同字母替換。
到目前爲止,我曾嘗試:
在PHP myadmin WHERE LongDescription
LIKE '%™%'作品!
:
$Search_for = '%apple%'; works but not special char
$Search_for = '%™%';// Not Working
$Search_for = '%_™%';// Not Working
$Search_for = '™';// Not Working
$Search_for = '%™%';// Not Working
我是否需要更改編碼傳遞到SQL?
現在嘗試:
$Search_for2 = '™';
$Search_for3 = mb_convert_encoding($Search_for2, 'UTF-8', 'UTF-8');
echo $Search_for3;
$Search_for = '%'.$Search_for3.'%';
呼應的一個「¢和工程就像一個適當的期限‘蘋果’,但依然沒有特殊字符。
是的,你做...它取決於你的數據庫使用什麼編碼..如果UTF8那麼你需要將你的字符串轉換爲UTF8 ..見:http://php.net/manual/en/function.iconv .php – 2015-03-03 12:38:54
Thanks - db shows「LongDescription \t text \t utf8_general_ci」and $ Search_for2 ='™'; $ Search_for3 = mb_convert_encoding($ Search_for2,'UTF-8','UTF-8'); echo $ Search_for3;並回顯顯示:¢ $ Search_for ='%'。$ Search_for3。'%';沒有找到任何東西 - 想法? – Fred 2015-03-03 12:58:10
嘗試從mb_convert_encoding中移除最後一個參數..正如你所說的輸入是UTF-8 ..當它不是時,使用默認的內部編碼,並且你可能會獲得更多成功.. – 2015-03-03 13:50:27