2016-07-20 3 views
0

도와주세요.mysql_query를 통해 mysql 문을 실행하십시오.

나는 MySQL의 쿼리가 : 나는 PHP의는 mysql_query()하지만 아무것도 나타납니다에서 실행하고자하는

SELECT GROUP_CONCAT(DISTINCT CONCAT('MAX(IF(mulai = ''',mulai,''', talenta, NULL)) AS ', QUOTE(mulai)) ORDER BY MULAI ASC) INTO @sql FROM history_talenta; 
SET @sql = CONCAT('SELECT nip, nama, DATE_FORMAT(tgl_grade_terakhir,''%d-%m-%Y'') as tgl_grade_terakhir, ', @sql, ' FROM history_talenta GROUP BY nip'); 
PREPARE stmt FROM @sql; 
EXECUTE stmt; 

을하지만 난 phpMyAdmin을 통해 그것을 시도 할 때 작업 및 값을 반환했다.

2 개 쿼리에

+1

'mysql_ *'API를 사용하지 마십시오. 더 이상 사용되지 않습니다. 'mysqli_ *'또는'PDO'를 사용하십시오 – Jens

+0

첫 번째 질의는'@sql'에 정보를 넣고 있습니다. 두 번째 stmt는'concat()'의 중간에있는 var를 사용하여 구현하고 있습니다. 당신이 그걸 모르는 것이 아닙니다. mysqli_에 대한 Revision1의 my answer [here] (http://stackoverflow.com/a/32145480)에서 mysqli_에서 vars를 안전하게 사용할 수있게 해주는'heredoc' (또는 그 블록이라고 부르는 것이 무엇이든)을 보여준다. '. 또한,'SET SESSION group_concat_max_len = 10000; '또는 어떤 값인 – Drew

답변

0

분할 해 주셔서 감사합니다 :

첫 번째 쿼리 : $ SQL1 변수로는 mysql_query에서이 쿼리의

SELECT GROUP_CONCAT(DISTINCT CONCAT('MAX(IF(mulai = ''',mulai,''', talenta, NULL)) AS ', QUOTE(mulai)) ORDER BY MULAI ASC) FROM history_talenta; 

가져 오기 결과, 다음 다른 SQL을 구성

$sql2 = "SELECT nip, nama, DATE_FORMAT(tgl_grade_terakhir,'%d-%m-%Y') as tgl_grade_terakhir, " . $sql1 . ' FROM history_talenta GROUP BY nip'; 

그런 다음 mysql_query ($ sql2)를 실행하십시오.

참고 : 모든 mysql_ * 함수와 함께 mysql_query는 더 이상 사용되지 않으며, mysqli_ 함수를 사용하는 것이 좋습니다.

+0

과 같은 stmt를 사용하여 버퍼 오버 플로우 문제를 조사하십시오. 고맙습니다. 작동합니다. –

+0

@AriefGrando 환영합니다. – olegsv

관련 문제