데이터베이스에 데이터를 삽입하는 두 가지 방법이 CodeIgniter에 있습니다.
첫번째 방법 : 일반 SQL 쿼리
public function addProduct($code, $name, $photo, $data = array()){
$sql = "";
if($photo == null){
// Product data
$d_code = isset($data['code']) ? $this->db->escape($data['code']) : '';
$d_name = isset($data['name']) ? $this->db->escape($data['name']) : '';
$d_category_id = isset($data['category_id']) ? $this->db->escape($data['category_id']) : '';
$d_subcategory_id = isset($data['subcategory_id']) ? $this->db->escape($data['subcategory_id']) : '';
$sql = "INSERT INTO mytable (code, name, category_id, subcategory_id) ";
$sql .= "VALUES ('" . $d_code . "', '" . $d_name . "', '" . $d_category_id . "', '" . $d_subcategory_id . "')";
} else {
// Product data
$d_code = isset($data['code']) ? $this->db->escape($data['code']) : '';
$d_name = isset($data['name']) ? $this->db->escape($data['name']) : '';
$d_category_id = isset($data['category_id']) ? $this->db->escape($data['category_id']) : '';
$d_subcategory_id = isset($data['subcategory_id']) ? $this->db->escape($data['subcategory_id']) : '';
$d_image = isset($photo) ? $this->db->escape($photo) : '';
$sql = "INSERT INTO mytable (code, name, category_id, subcategory_id, image) ";
$sql .= "VALUES ('" . $d_code . "', '" . $d_name . "', '" . $d_category_id . "', '" . $d_subcategory_id . "', '" . $d_image . "')";
}
$this->db->query($sql);
if($this->db->affected_rows() > 0){
return true;
} else {
return false;
}
}
두번째 방법 : 두 가지 방법으로 당신이이 것을 염두에 액티브
public function addProduct($code, $name, $photo, $data = array()){
if($photo == null){
// Product data
$d_code = isset($data['code']) ? $this->db->escape($data['code']) : '';
$d_name = isset($data['name']) ? $this->db->escape($data['name']) : '';
$d_category_id = isset($data['category_id']) ? $this->db->escape($data['category_id']) : '';
$d_subcategory_id = isset($data['subcategory_id']) ? $this->db->escape($data['subcategory_id']) : '';
$dataArr = array(
'code' => $d_code,
'name' => $d_name,
'category_id' => $d_category_id,
'subcategory_id' => $d_subcategory_id
);
} else {
// Product data
$d_code = isset($data['code']) ? $this->db->escape($data['code']) : '';
$d_name = isset($data['name']) ? $this->db->escape($data['name']) : '';
$d_category_id = isset($data['category_id']) ? $this->db->escape($data['category_id']) : '';
$d_subcategory_id = isset($data['subcategory_id']) ? $this->db->escape($data['subcategory_id']) : '';
$d_image = isset($photo) ? $this->db->escape($photo) : '';
$dataArr = array(
'code' => $d_code,
'name' => $d_name,
'category_id' => $d_category_id,
'subcategory_id' => $d_subcategory_id,
'image' => $d_image
);
}
$this->db->insert('mytable', $dataArr);
if($this->db->affected_rows() > 0){
return true;
} else {
return false;
}
}
노트
유지 MySQL 데이터베이스의 정확한 구조. 그렇지 않으면 "열을 찾을 수 없습니다"등의 오류가 발생합니다.
한편으로는 MySQL에 배열을 저장할 수 없지만 쉼표로 구분 된 값 (CSV) 문자열을 저장할 수 있습니다 권장 사항 :
$dataArr = array(
$d_code,
$d_name,
$d_category_id,
$d_subcategory_id
);
$csv = implode(",", $dataArr);
제공된 데이터 중 하나라도 쉼표가 포함되어있는 경우 문제가 발생합니다. 당신은 MySQL의 행의 CSV를 저장 안되는 이유
:
정보의 모든 조각 치료 자체에 저장해야
- .
- 데이터를 검색하는 것은 MySQL을 사용하여 불가능합니다.
- "색인 생성"을 잊어 버리십시오. 이 경우에는 쓸모가 없습니다. 또한 쿼리 최적화를 잊어 버리십시오.
- 정보의 특정 부분을 찾으려면이 테이블의 모든 테이블을 쿼리하고이 정보를 반복하여 원하는 데이터를 얻어야합니다.
- 개발자는 귀하의 이동을 이해하지 못합니다.
- 확실히 CodeIgniter, 특히 ActiveRecord 메서드에서 문제가 발생할 것입니다.
- 는 CodeIgniter의에서 데이터베이스에서 정보를 삭제// 업데이트를 선택/삽입하기 정말 쉽습니다 : 당신이 CodeIgniter를 위해 최선을 다하고 처음 인 경우에 link
- 은 다음 문서를 읽고 몇 분 정도 걸릴하고 학습을 . 끔찍한 해킹을하는 것은 누군가와 특히 당신을 도우 려하지 않을 것입니다. 왜냐하면 여러분은 버그와 지저분한 코드로 끝날 것이기 때문입니다.그런 다음
'name' => serialize(array('code'=>$data['code'], 'name'=>$data['name']))
는 단순히 $data = unserialize($res['name']);
echo $data['code']."-".$data['name'];
또한 serialize()
의 루에서 json_encode()
및 json_decode()
를 사용할 수있는 수를 검색하고 : 만약 내가 제대로 이해하고
코드에 어떤 언어가 들어 있습니까? (적절하게 태그를 달았습니까?) – david
'같은 값으로 두 값을 저장해야합니다. 그러지 마세요. 대신에 두 개의 열을 사용하십시오. 각 열은 하나의 정보에만 대응해야합니다. –
및 어레이 저장은 어레이를 행에 저장할 때 효율적으로 수행됩니다. – Miki