簡體   English   中英

Codeigniter MySQL查詢帶有特殊字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM