2013-05-01 2 views
0

implode 함수 내부의 배열을 사용하여 쿼리를 실행하려고합니다.내포 함수 내에서 작은 따옴표로 변수 묶기

$dosages = implode(" AND CONCAT(prescription,'-',dosage) =",$doses); 
$q=$this->db->query("SELECT account_num 
        FROM ( 
        SELECT account_num, CONCAT(prescription,'-',dosage) as script 
        FROM ci_prescription_history 
        )a 
        WHERE script=".implode(' AND script=',$doses)); 

MySQL은 " 'where 절'에서 알 수없는 열 '애드 베어'를"말을 유지합니다. 이 작은 따옴표로 내파의 함수 내에서 변수를 포장 할 수 있다면 난 그냥 예, 당신이 당신의 쿼리와에 따옴표를 추가 할 필요가 구문 분석됩니다 때 그래서이

SELECT account_num 
FROM (SELECT account_num, CONCAT(prescription,'-',dosage) as script 
FROM ci_prescription_history 
)a 
WHERE script='Advair-230/21' AND script='Advair-250/50' 
+2

1. 그냥 잘못 아닌가 그것을 해결하기 위해 무슨 짓 작은 따옴표 하나만 부르시겠습니까? 2.이 AND 절은 절대로 레코드를 반환하지 않습니다. –

+0

귀하의 권리 나는 phpmyadmin에서이 쿼리를 실행했으나 아무 것도 반환하지 않았습니다. –

답변

1

처럼 읽어 알고 싶어 이 같은 implode() :

$q=$this->db->query("SELECT account_num 
       FROM ( 
       SELECT account_num, CONCAT(prescription,'-',dosage) as script 
       FROM ci_prescription_history 
       )a 
       WHERE script='" . implode("' AND script ='", $doses)) . "'"; 
+0

좋아요. 예제를 사용하고 오류가 제거되었지만 두 행을 다시 가져 왔음에 알지만 빈 결과 집합을 받았습니다. 또한 당신이 어떤 유형의 스크립트 = ' "implode ("'AND script = ' ", $ doses))를 만들었다 고 생각합니다.'; ''; 난 당신이 원하는 스크립트 = ' "implode ("AND 스크립트 =' ", $ 복용량)." ' ");하지만 내가 틀릴 수 –

+0

내가 처방전 하나를 선택하면 그것은 완벽하게 작동 –

+0

아마도 당신이 사용하고 있기 때문에 AND에서'OR'을 사용해야합니다 :'WHERE script = ' ". implode (" 'OR script ='", $ doses)). " '";' – nickb

0

편집 여기 내가

foreach ($accounts as $account) { 
    $q=$this->db->query("SELECT account_num 
    FROM ( 
    SELECT account_num, CONCAT(prescription,'-',dosage) as script 
    FROM ci_prescription_history 
    )a 
    WHERE script='".implode("' OR script ='",$doses)."' AND account_num=$account"); 
} 
+0

어쩌면 나는 너무 빨리 총을 점프한다. 쿼리를 테스트 한 후에도 여전히 올바른 결과를 제공하지 못한다는 것을 깨달았습니다. 나는이 표현식을 "IN ('", implode ("', '", $ doses)) ")") "을 사용하여 거기에 없어야하는 양 또는 행을 줄이고, 또한 거기에 있어서는 안되는 몇 줄의 행을 표시합니다. 나는 최고의 MySQL 사용자가 아니기 때문에 어떤 도움을 주시면 감사하겠습니다. –

관련 문제