[英]Codeigniter mysql query with special characters
數小時以來一直在為這件事情而苦苦掙扎。 希望有人可以幫助我。
嘗試從mysql根據名字和姓氏獲取數據。 除非有ä或ö這樣的特殊字符,否則一切正常。
我打開了探查器,查詢看起來像這樣:
SELECT mail, address, title FROM users WHERE firstname='teemu' AND lastname='sel%C3%A4nne'
應該是:
SELECT mail, address, title FROM users WHERE firstname='teemu' AND lastname='selänne'
在我的模型中是這樣的:
$sql = "SELECT mail, address, title FROM users WHERE firstname=? AND lastname=?";
我怎樣才能解決這個問題? 謝謝!
控制者
public function edit()
{
$this->load->model('p_model');
$this->load->view('edit',$data);
}
public function ajax_p($first,$last)
{
$this->load->model('p_model');
$data['info'] = $this->p_model->pInfo($first,$last);
$this->load->view('ajax/p',$data);
}
您在數據庫中有utf8_general_ci嗎? 您的文件編碼為utf8嗎?
嘗試將特殊字符放在配置中
$config['permitted_uri_chars'] = 'a-z 0-9~%.:@_\-ä';
並確保您的數據庫是utf8_general_ci是您的服務器連接排序規則。
確保不要忘記對帖子值進行url解碼。 可能發生的是您使用$ _POST而不是代碼點火器函數$ this-> input-> post();。 $ _POST不會對您的參數進行網址解碼,而codeigniter函數可以。
因此,請驗證傳遞給查詢的變量確實是selänne,而不是sel%C3%A4nne
如果是sel%C3%A4nne,請使用urldecode()或$ this-> input-> post()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.