0

テーブル スキーマと準備済みステートメントを含むテーブルがあります。

CREATE TABLE studentexam
    (`ID` int, `Student` varchar(4), `Exam` varchar(2))
;

INSERT INTO studentexam
    (`ID`, `Student`, `Exam`)
VALUES
    (1, 'Kavi', 'BE'),
    (2, 'MGR', 'BA'),
    (3, 'MGR1', 'BE')
;

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'max(case when exam = ''',
      exam,
      ''' then student end) AS `',
      exam, '`'
    )
  ) INTO @sql
from studentexam;

SET @sql 
    = CONCAT('SELECT ', @sql, ' 
              from studentexam
              group by id;');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

SQL フィドル

問題は、このクエリを sqlfiddle で実行するとうまく機能することですが、phpmyadmin で同様のテーブル スキーマを使用してこの同様のクエリを実行すると機能しません。エラーは表示されませんが、「クエリが正常に実行されました」のような単純なメッセージが表示されます。結果やエラーが表示されません。助けてください。

4

1 に答える 1

0

これは phpMyAdmin 4.0.6 では問題なく動作します。3 行の結果が表示されます。PHP 5.5.3 と MySQL 5.5.31 を mysqli 拡張機能と共に使用しています。

ただし、もう一度試してみたところ、次のようになりました。

#1243 - EXECUTE に渡された不明なプリペアド ステートメント ハンドラ (stmt)。

于 2013-09-20T15:16:27.783 に答える