PHP에서 PDO를 사용하여 쿼리를 실행하려고합니다. $ sql에서 SET @var를 사용할 때를 제외하고 쿼리는 순위를 결정하기 위해 맨 위에 몇 가지 변수가 있습니다. 빈 행 집합을 반환합니다. 그러나 문제가되는 SQL을 제거하면 괜찮습니다.PHP PDO - MySQL 변수 사용
내 스크립트에서 @prev_value, @rank_count 또는 @rank_increasing을 반환하고 싶지는 않으며 SELECT에서 만든 순위 만 반환합니다.
내가 잘못하고있는 것을 알려주시겠습니까?
감사
$sql = "
SET @prev_value = NULL;
SET @rank_count = 0;
SET @rank_increasing = 0;
SELECT a.*
, @rank_increasing := @rank_increasing + 1 AS row_num
, CASE
WHEN @prev_value = score
THEN @rank_count
WHEN @prev_value := score
THEN @rank_count := @rank_increasing
END AS rank
FROM (
-- INLINE VIEW --
) a
";
try {
$sth = $dbh->prepare($sql);
$sth->execute(array($var1, $var2));
return $sth->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
return $e;
}
가능한 복제 [변수 MySQL의 스크립트를 실행하는 방법 PHP :: PDO를 사용하여?] (http://stackoverflow.com/questions/4683110/how-to-execute-mysql-script-w i-variables-using-phppdo) – doublesidedstickytape