2012-06-24 3 views
0
)

키워드를 검색하는 매우 간단한 검색 창에 대해 아주 간단한 mysql 행을 작성했지만 오류가 발생했습니다. (나는 그것 때문에 검색의 길이의 느낌이있다)PHP-Mysql 오류 (%

$query = "SELECT * FROM entries WHERE name='%".$search."%' "; 

작동하지만

$query = "SELECT * FROM entries WHERE desc='%".$search."%' "; 

은하지 않습니다.

데이터베이스에서 이름은 약 20 자이며 desc는 약 700입니다. 철자와 모든 사항을 검사 한 결과 오류 만 출력됩니다.

스캔 할 문자가 너무 많아서 작동하지 않습니까?

미리 감사드립니다.

+0

2 문제 : 1. 오류 검사를하지 않습니다. 그렇지 않으면이 질문은 전혀 또는 다른 방식으로 묻지 않았습니다. 2. SQL 주입의 대상이 될 수 있습니다. prepared 문이나 적어도 mysql_real_escape_string() 함수를 사용해야한다. – glglgl

+0

고마워,하지만 어떻게 MySQL에서 오류 검사를 할 것이라고 확신하지 않아? (btw, 그래, 내 SQL을 보호하지만 내 예제에 모두 포함하지 않았다.) – Ninjiangstar

+0

함수 호출이 잘못되었다는 것을 알게되면 예를 들어 ['mysql_error()'] (http://php.net/manual/en/function.mysql-error.php) 이전 인터페이스를 사용한다면. mysqli와 PDO 인터페이스는 분명히 비슷한 기능을 가지고있다. – glglgl

답변

5

desc 당신은 그것을 인용해야하고, 대신 =LIKE를 사용하고 $search가 탈출되어 있는지 확인해야합니다, MySQL의 핵심 단어입니다.

$query = "SELECT * FROM entries WHERE `desc` LIKE '%".$search."%' "; 
+0

...'$ search'를 탈출하는 것을 잊지 마세요 ... – poncha

+0

@poncha 네, 맞습니다. – xdazz

+0

아, 나는 거의 잊어 버렸고 그 대답에 대해 많은 감사를 표한다. – Ninjiangstar