2012-06-25 6 views
0

왜이 개체가 생성됩니까?Sql, Object vs String/Array

$sql = $this->db->query(" 
    SELECT 'product_id' 
    FROM " . DB_PREFIX . "product_to_category 
    WHERE category_id = '" . $this->db->escape($category['category_id']) . "' 
"); 

어떻게 문자열/배열을 대신 얻을 수 있습니까? Opencart 에서

관련 : 클래스 stdClass의 개체 CodeIgniter의 가정 문자열

+3

정보가 충분하지 않습니다. – Robin

+0

어떤 라이브러리를 사용하고 있습니까? – robbrit

+0

Google이 CodeIgniter를 말합니다 – biziclop

답변

0

당신은 당신의 쿼리 구문에 오류가있다, 당신은 'PRODUCT_ID'를 선택 넣고 거기 apostrophies가 없어야합니다.

$sql = $this->db->query(" 
    SELECT 'product_id' 
    FROM " . DB_PREFIX . "product_to_category 
    WHERE category_id = '" . $this->db->escape($category['category_id']) . "' 
"); 

변경해야합니다.

$sql = $this->db->query(" 
    SELECT product_id 
    FROM " . DB_PREFIX . "product_to_category 
    WHERE category_id = '" . $this->db->escape($category['category_id']) . "' 
"); 
2

로 변환 할 수 없습니다 :

http://codeigniter.com/user_guide/database/queries.html

$this->db->query(); 

쿼리() 함수는 데이터베이스 결과를 반환 개체 "읽기"유형 쿼리가 실행될 때, 당신은 할 수 있습니다. se를 사용하여 결과를 표시하십시오.

당신은 result_array를 사용하여 배열로 결과 집합 행을 처리 할 수 ​​있습니다 :

http://codeigniter.com/user_guide/database/results.html

$query = $this->db->query("YOUR QUERY"); 

foreach ($query->result_array() as $row){ 
    echo $row['title']; 
    echo $row['name']; 
    echo $row['body']; 
} 
+0

"정의되지 않은 메서드 stdClass :: result_array()"를 호출합니다. 그것은 완전히 기괴하다. 보통 문자열/배열을 얻지 못한다. – Cleverbot

1
$sql = $this->db->query(" 
    SELECT 'product_id' 
    FROM " . DB_PREFIX . "product_to_category 
    WHERE category_id = '" . $this->db->escape($category['category_id']) . "' 
"); 
$rows = $sql->rows; //array of all returned values 
$row = $sql->row; //first row 

내가보기 엔 당신이 공공 오브젝트 필드가 유용 할 수 있는지 조사하기 위해 var_dump($sql)를 사용하는 것이 좋습니다 너를 위해서.

* 고정 구문

+0

그건 완전히 배열 감사로 바뀌 었 어 !! 한 가지 다른 점은, 내 반환이 단일 문자열 일 경우 어떻게해야합니까? "$ rows = #sql -> $ rows;"를 자르면 안 될까요? " – Cleverbot

+0

'$ query = $ this-> db-> query ("SELECT COUNT (*) AS 전체 합계"DB_PREFIX "country"); return $ query-> row [ 'total'];'$ query-> row'가 아닌'$ query-> row'를 참고하십시오. – Kirzilla

+0

그 작동하지만 데이터베이스에서 단일 문자열 값 또는 데이터베이스에서 배열의 단일 문자열 값을 추출하려면 찾고 있었다. 귀하의 초기 방법을 시도하면 값 자체에 반대되는 값의 이름 만 제공됩니다. – Cleverbot