thinkphp解決數據傳入數據庫中特殊字符的問題小結
thinkphp解決數據傳入數據庫中特殊字符的問題
為了解決這個問題,你需要確保在插入數據庫之前,不對文本內容進行HTML實體編碼。如果你是從前端獲取的數據,檢查是否在發(fā)送請求前使用 htmlspecialchars()
或類似方法進行了轉義。如果是后端處理邏輯導致的轉義,那么在插入數據庫之前取消轉義或避免對其進行轉義。
如果是在 Laravel 框架下,一般不需要手動處理此類轉義問題,因為 Eloquent ORM 在處理字符串時不會自動進行HTML實體編碼。但如果你確實遇到了這種情況,可以使用 PHP 的 html_entity_decode()
函數還原原始字符串
例子
$operation_code = html_entity_decode($name, ENT_QUOTES, 'UTF-8'); $data = [ 'operation_seq_num' => $num, 'wip_entity_name' => $wip_entity_name, 'operation_code' => $operation_code, 'creation_date' => time(), 'begin_date' => time(), 'employee_num' => $employee_num, 'created_by' => $username ]; db::table('wip_production')->insert($data);
擴展:
Thinkphp3.2如何處理大規(guī)模并發(fā)寫入問題
1.大規(guī)模并發(fā)寫入,出現數據庫鎖死,數據寫入失敗,數據表損壞等問題
2.鎖表需要配合事務使用
3.具體代碼如下
M()->startTrans(); $lot_check = M()->table('order')->lock(true)->where(['id' => $id])->field('id,type')->find(); $data = ['status'=>2]; $res = M()->save($data); if($res) { M()->commit(); #提交事務 }else{ M()->rollback(); #回滾事務 }
4.采用的方法主要就是事務配合鎖表,解決大并發(fā)寫入問題
到此這篇關于thinkphp解決數據傳入數據庫中特殊字符的問題的文章就介紹到這了,更多相關thinkphp特殊字符內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Laravel Memcached緩存驅動的配置與應用方法分析
這篇文章主要介紹了Laravel Memcached緩存驅動的配置與應用方法,結合實例形式分析了在Laravel框架配置Memcached緩存及相關使用方法,需要的朋友可以參考下2016-10-10PHP根據session與cookie用戶登錄狀態(tài)操作類的代碼
這篇文章主要介紹了PHP根據session與cookie用戶登錄狀態(tài)操作類的相關資料,非常具有參考借鑒價值,需要的朋友可以參考下2016-05-05基于Laravel Auth自定義接口API用戶認證的實現方法
這篇文章主要給大家介紹了基于Laravel Auth自定義接口API用戶認證的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-07-07