어떤 이유로이 SQL 문이 작동하지 않습니다. 아무도 그 이유를 말할 수 있습니까? 여기 왜이 MySQL INSERT가 CI에서 작동하지 않습니까?
내 모델 (즉 중요한 경우는 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
을 받고있어 오류가
내 테이블을 '사용자'라고하며 'first_name'및 'id'열이 있습니다.
아이디어가 있으십니까? 내가 여기를 전달하고있는 변수는 따옴표 또는 역 따옴표가없는 것을 명확히하려는 조금 올 것으로 보인다해서
편집
. 그것들은 어딘가에 추가되고 있습니다 (그리고 그것은 -> 질의 방법처럼 보입니다. 그러나 그것이 사실 일까 상상할 수 없습니까?).하지만 첫 번째 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';
}
}
'first_name' 주위의 따옴표가 검색어를 깨고 있습니다 –
@JohnConde 나는 그것이 따옴표 문제 일 수 있다고 생각했습니다. 하지만 저는 거기에 넣지 않을 것입니다. 변수가 동적으로 할당되고 따옴표가 추가됩니다. 내가 원하는 것을하기위한 더 좋은 방법은 무엇입니까? –
또한 MySQL sintax의 정수는 quetes로 둘러 쌀 수 없습니다 (예 :'WHERE id = 151') – Epsil0neR