2014-09-16 4 views
0

나는 어제부터 해결하려고 노력해 왔던 문제가 있습니다. wordpress에 $wpdb을 통해 SQL 쿼리를 전달하려고 시도하지만 결과를 반향하려고하면 빈 배열이 계속 표시됩니다.

나는 print_rvar_dump을 시도했으며 두 가지 모두 값이 비어 있습니다. 나는이 물건을 분류 할 수없는 것처럼 누군가가 도울 수 있으면 감사 할 것이다.

나는 여전히 성공하지 못한 db 접두어를 통해 테이블을 호출 해 보았습니다. 다음은

내가 같은 문제 get_var 시도

<?php 
global $wpdb; 
$results = $wpdb->get_results("SELECT CURRENT FROM upper_winds WHERE LVL=&level AND REGION=&region AND VALID=&valid"); 
echo $results; 
?> 

P.S을 사용하고있는 코드입니다. 당신이 당신의 열의 문자열을 찾고 있지만 &을 사용하는

<?php 
global $wpdb; 
$results = $wpdb->get_results("SELECT * FROM `wp_upper_winds` 
      WHERE `LVL`='$level' 
      AND `REGION`='$region' 
      AND `VALID`='$valid' 
      "); 
var_dump ($results); 
?> 

감사

당신은 가능성이 wp_ 등보다 테이블 이상을 접두사 필요가
+0

가 직접 해당 쿼리를 시도인가? (PHPMyAdmin 또는 다른 것으로?) –

+0

이러한 앰퍼샌드를 달러 기호로 변경하고 작은 따옴표로 묶습니다. 일단 당신이 그것을 가지고 있다면, [read this] (http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks) – maiorano84

답변

0

..?

+0

그래, 나는이 물건을 영원히보고 있기 때문에 아마 $ .. 타입을 사용하고있다. 그래서 접두사를 붙이면 DB 이름 앞에 wp가 필요합니까?그냥 wp 디버그를 설치하고 쿼리에 알 수없는 열이 표시됩니다. s – F117a

+0

그래도 LVL 등에서 문자열 수준을 찾고 있다면 위와 같이 해보십시오. – David

+0

이제 wp_dbname.tablename을 추가하려고했는데 이상한 사용자가 승인되지 않았습니다 – F117a

2

나는 당신이 결과가 나타나지 않는 원인이 될 수있는 wordpress 데이터베이스 접두어를 고려하지 않은 것으로 나타났습니다. $wpdb->prefix을 사용하여 접두사를 테이블 이름 앞에 추가 할 수 있습니다.

나는 다음과 같은 코드를 시도 제안 :

global $wpdb; 
$results = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."upper_winds WHERE LVL = 'level' AND REGION = 'region' AND VALID = 'valid'"); 
echo $results; 

나는 또한 그냥 SQL 주입 공격으로부터 보호하기 위해 $wpdb->prepare을 사용하는 것이 중요하다고 지적하고 싶었다. 자신의 SQL을 작성할 때마다 $wpdb->prepare을 사용해야합니다. 그러나 $wpdb->insert 또는 $wpdb->update과 같은 SQL을 작성하지 않아도되는 메서드를 사용하면 $wpdb->prepare을 사용할 필요가 없습니다.이 함수는 SQL 이스케이프를 처리하기 때문입니다. 어떤 값이 문자열이고 어떤 값이 정수인지 모른 채 샘플 코드를 제공 할 수 없습니다.

은 참조 : 훌륭한 조언과 입력 http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks

+2

wp_를 SQL 쿼리에 하드 코딩하는 대신 $ wpdb-> prefix를 올바르게 사용하는 것이 올바른 방법입니다 (특히 코드가 실행되는 경우 특히 그렇습니다). 다중 WP 설치) –

0

감사합니다. 결국 나는 그것을 작동시켰다.

솔루션을 찾으려고 여러 번 코드를 변경하면서 문제가 발생한 것은 아닙니다. 결국 주요 문제는 테이블에 못 박혔습니다. 컬럼 중 하나에서 나는 'EU-VFR'과 같은 데이터를 가지고있었습니다. 분명히 $ wpdb는 '-'로 값을 선택하지 않았습니다. 다행스럽게도 당신의 도움과 디버깅을 통해 깨달았습니다. 여기

내가 http://howtoflyahelicopter.com/upper-winds-and-temp/

다시 한 번 감사드립니다 지금 무엇을 가지고 :

관련 문제