2012-08-03 3 views
1

하나의 특정 데이터 항목을 제외한 모든 경우에 내 MySQL 쿼리가 작동하는 이상한 문제가 발생했습니다. 이 쿼리() 함수 워드 프레스 $ wpdb-> get_results에 공급변수가 사용될 때 MySQL 쿼리가 작동하지 않음 쿼리 내

SELECT * FROM wp_songs WHERE album_name = '{$current_album}' 

:

여기 내 쿼리입니다. 쿼리 대신에 변경되는 경우,

그러나 :

SELECT * FROM wp_songs WHERE album_name = 'Raw & Uncut: The Mixtape' 

데이터는 문제없이 발견된다 :는 "믹스 테이프 원시 & 포경 :"몇 가지 이유 때문에이 특정 데이터 항목을 찾을 수 없다.

$ wpdb-> last_query 함수를 실행하면 두 경우 모두 똑같은 줄이 반환됩니다.

문제는 하나의 데이터 입력에만 해당됩니다. 다른 데이터 항목으로 문제를 재현 할 수 없었습니다. 다른 모든 항목은 원래 쿼리와 함께 작동합니다.

더 코드 :

이 작동하지 않습니다

$current_album = "Raw & Uncut: The Mixtape"; 
$songs = $wpdb->get_results("SELECT * FROM wp_songs WHERE album_name = '{$current_album}'") 
if ($songs) { echo "Works"; } 

이 작동 :

$songs = $wpdb->get_results("SELECT * FROM wp_songs WHERE album_name = 'Raw & Uncut: The Mixtape'"); 
    if ($songs) { echo "Works"; } 

다시, 특정 데이터 항목에 대해서만입니다. 다른 모든 항목은 두 쿼리 모두에서 작동합니다.

실행하기 위해서 var_dump ($의 current_album는) 반환

문자열 (28) "원시 & 포경 : :이 믹스 테이프"

string(28) "Raw & Uncut: The Mixtape" 
+0

모든 관련 코드를 표시하십시오. –

+0

특수 문자가없는 문자열로이 구문을 시도하십시오. 제 생각에는 "&"와 ":"가 문제를 만든 것 같습니다. – Sliq

+0

특수 문자를 포함하지 않는 문자열과 함께 작동하지만 변수를 사용하지 않는 경우에도 작동합니다. – Vince

답변

3

당신은 $ 현재 앨범을 var_dumping의 결과를 게시

"Raw & 언컷 : The Mixtape"는 24 자입니다. 그게 내게 말해주는 변수는 실제로 contai NS이 :

Raw & Uncut: The Mixtape

데이터베이스에이 일치하지 않는다. 앨범 변수에서 html_entity_decode()를 실행하여 문제를 해결할 수 있습니다.

+0

그게 작동합니다. 고맙습니다! – Vince

관련 문제