2014-11-25 2 views
1

데이터베이스의 일부 필드를 기반으로 쿼리를 작성하려고합니다. 문자열이 CONTAIN 인 셀을 키워드로 선택하려고합니다. 작동하지 않는 코드는 LIKE입니다. 오류 코드는 다음과 같습니다쿼리가 LIKE와 함께 작동하지 않습니다.

가 쿼리를 실행하지 못했습니다 : SQLSTATE [HY093] : 잘못된 매개 변수 번호 : 바운드 변수의 수와 시도 토큰

PHP

$query = " 
      SELECT 1 
      FROM phpexcel 
      WHERE objekt_nr = :objekt_nr && element_nr = :element_nr && element_scanned_where LIKE '%:element_scanned_where%'"; 

     $query_params = array(
      ':objekt_nr' => $ean_objekt_nr, 
      ':element_nr' => $ean_element_nr, 
      ':element_scanned_where' => $element_scanned_where 
      ); 
+1

AND AND "&&" – Buisson

+0

@Buisson 왜 그런가요? – Jordy

+0

fyi : 명명 된 자리 표시 자에 대해 따옴표가 필요하지 않으며 물론 prepare 함수를로드하여 실행하는 것을 잊지 마십시오. – Ghost

답변

2

이 시도 :

$query = " 
      SELECT 1 
      FROM phpexcel 
      WHERE objekt_nr = :objekt_nr && element_nr = :element_nr && element_scanned_where LIKE :element_scanned_where"; 

     $query_params = array(
      ':objekt_nr' => $ean_objekt_nr, 
      ':element_nr' => $ean_element_nr, 
      ':element_scanned_where' => '%'.$element_scanned_where.'%' 
      ); 
+0

이 하나의 매력처럼 작동합니다! 내 하루 만들었 어! 고맙습니다! – StoneStreet

0

일치하지 않습니다 -

$query = " 
     SELECT 1 
     FROM phpexcel 
     WHERE objekt_nr = :objekt_nr AND element_nr = :element_nr AND element_scanned_where LIKE %:element_scanned_where%"; 

    $query_params = array(
     ':objekt_nr' => $ean_objekt_nr, 
     ':element_nr' => $ean_element_nr, 
     ':element_scanned_where' => $element_scanned_where 
     ); 
+0

가독성을 위해'and's를'AND's로 변경하는 것이 좋겠지 만, 그 외에는 모두 좋다. – Nerixel

+0

답변이 업데이트되었습니다. –

+0

죄송합니다, 이것은 작동하지 않습니다! S.Pols 예제가 있습니다. 그리고 난 & whitout 어떤 문제를 사용할 수 있습니다. – StoneStreet

관련 문제