现在已经挣扎了几个小时。希望有人可以帮助我。
尝试根据名字和名字从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);
}
答案 0 :(得分:0)
您在数据库中有utf8_general_ci吗? 你的文件编码为utf8?
答案 1 :(得分:0)
尝试将您的特殊字符放在配置中,如
$config['permitted_uri_chars'] = 'a-z 0-9~%.:@_\-ä';
并确保您的数据库是utf8_general_ci是您的服务器连接排序规则。
答案 2 :(得分:0)
确保您不要忘记对帖子值进行urldecode。可能发生的是您使用$ _POST而不是codeigniter函数$ this-> input-> post();在codeigniter函数执行时,$ _POST不会为你编码参数。
因此,请验证您传递给查询的变量是否真的是selänne而不是sel%C3%A4nne
如果它是sel%C3%A4nne,请使用urldecode()或$ this-> input-> post()