何らかの理由で、このSQLステートメントは機能していません。誰か教えてもらえますか?(それが重要な場合、これはCodeigniterサイトです)
これが私のモデルです(私のエラーが私を指し示しているところ)
public function edit_profile($ID, $field, $new_info)
{
$sql = "UPDATE users SET ?=? WHERE id=?";
$query = $this->db->query($sql, array($field, $new_info, $ID)); // <<<< LINE 42
return $query;
}
そして、これは私が得ているエラーです
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''first_name'='oooo' WHERE id='151'' at line 1
UPDATE users SET 'first_name'='oooo' WHERE id='151'
Filename: /Applications/MAMP/htdocs/MY_SITE/models/member_model.php
Line Number: 42
私のテーブルは「users」と呼ばれ、「first_name」列と「id」列があります。
アイデア?
編集
少し浮かび上がってきたように見えるからといって、ここで渡した変数にはクォートやバックティックがないことを明確にしておきたいと思います。それらはどこかに追加されています(そして、-> queryメソッドのように見えますが、それが本当だとは想像できませんか?..わからない、それが私の最初のCIプロジェクトだからです)
これがモデルに渡されるコントローラーです...
public function profileEdit()
{
$ID = $this->the_user->id;
$field = $this->input->post('edit_field')
$field = strstr($field,'_edit', true);
$new_info = $this->input->post('new_info');
$this->load->model('Member_model');
if( $this->Member_model->edit_profile( $ID, $field, $new_info )){
echo 'success';
}
else
{
echo 'error';
}
}