2014-03-04 2 views
-1

NULLPHP는 MySQL의 쿼리 나던 작업

$query = "SELECT * FROM maintable WHERE Category LIKE '$word' 
                 OR Title LIKE '$word' 
                 OR Title2 LIKE '$word' 
                 OR Description LIKE '$word' 
                 OR Description2 LIKE '$word' 
                 OR Preimushestva LIKE '$word' 
                 OR Preimspisok LIKE '$word';"; 

      $result = mysqli_query($link, $query) 
      or die("Error: ".mysqli_error($link)); 

      $row = mysqli_fetch_array($result, MYSQLI_ASSOC); 

      var_dump($row); 

$word = 'dolor' 보여주고 나는 나를

을 실수하십시오 찾을 수 있도록 설명 탭에서 내 테이블에 단어 슬픔이
+0

"나는 내 테이블에 단어가 있습니다."--- 명확하게 설명합니다. 정확한 가치는 무엇입니까? – zerkms

+1

스크립트는 아마도 [SQL injections에 취약하다] (http://bobby-tables.com) 일 것입니다. Prepared Statements 사용을 고려하십시오. – TimWolla

+1

@TimWolla : ** prone **인지 알 수 없습니다. 추측을 진실로 전파하는 것을 중단하십시오. 고맙습니다. – zerkms

답변

5

패턴 일치 문자가 없습니다. 그들 없이는 LIKE은 본질적으로 =과 동일합니다.

다음은 예입니다 :

$query = "SELECT * FROM maintable WHERE Category LIKE '%$word%' 
                OR Title LIKE '%$word%' 
                OR Title2 LIKE '%$word%' 
                OR Description LIKE '%$word%' 
                OR Description2 LIKE '%$word%' 
                OR Preimushestva LIKE '%$word%' 
                OR Preimspisok LIKE '%$word%';"; 
+1

+1 실제로 무엇을 변경했는지 그리고 왜 설명했는지 설명합니다. –

+0

오, 고마워, 나는 그걸 알지 못했다.누군가 내게이 새로운 것이 있기 때문에 그것에 대해 읽을 수 있도록이 일이 어떻게 호출되는지 말해 주실 수 있습니까? 나는 이것을 9 분 안에 대답으로 표시 할 수 있습니다. –

+1

여기에서 시작하십시오 : http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html –

4

이 링크를보세요 : http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like

$query = "SELECT * FROM maintable 
       WHERE Category LIKE '%".$word."%' 
       OR Title LIKE '%".$word."%' 
       OR Title2 LIKE '%".$word."%' 
       OR Description LIKE '%".$word."%' 
       OR Description2 LIKE '%".$word."%' 
       OR Preimushestva LIKE '%".$word."%' 
       OR Preimspisok LIKE '%".$word."%';"; 
+0

이것은 아마도 첫 번째 가능한 정답 이었으므로 하향 보를받을 가치가 없습니다. –

+0

@GordonLinoff 현재 대답은 실제로 * 설명 *되지 않았기 때문에 downvoted, 그'%'는 미숙 한 개발자에게는 아무런 의미가 없으며 OP 코드를 복사하여 붙여 넣기 만하면 올바른 경로에 넣을 수 없습니다. 모든. – Marty

+2

@Marty : 해답이 설명되어 있지 않지만 해를 끼치 지 않고 해를 끼치 지 않고 해를 끼치 지 못하더라도 ** 아무런 의미가 없다. + 1d 왜냐하면이 경우에 downvoting은 어리 석다. – zerkms

1

내 추측은 '%dolor%'를 검색 할 필요가있을 것이다. 와일드 카드 문자가없는 식 like은 정확한 일치를 검색합니다.

그러나 변수 대체 후 쿼리를 인쇄하면 도움이됩니다. 와일드 카드 양식으로 문제가 해결되지 않으면이 정보로 질문을 편집 할 수 있습니다.