2011-01-18 22 views
1

を選択すると、これは私のクエリの簡易版である:PDO:一時テーブルを作成し、mysqlのストアドプロシージャをコールし、それから

CALL Create_List('company'); SELECT name FROM tmpCompany; 

Create_Listは一時テーブルtmpCompanyを作成します。

phpmyadminを使用してデータベースに直接実行すると正しく動作しますが、phpでPDOを使用して呼び出すと、結果は得られません。

PHPからストアドプロシージャを呼び出す特定の方法はありますか?

PHPコード

$result = $this->db->prepare("CALL Create_List(:table); SELECT name FROM tmpCompany;"); 
$result->bindParam(':table', $this->table); 
$result->execute();  
return $result->fetch(); 

EDIT

おそらく関連?

http://bugs.php.net/bug.php?id=38001

+0

あなたは、sprocを呼び出すことができたときに一時テーブルを作成してから選択することはちょっと奇妙な、sprocを呼び出すという現行のアプローチとして何をしようとしているのか少し説明できますか? –

+0

カンマ区切りのフィールドを持つ2つのテーブルがあるので、それぞれのアイテムを互いに比較する方法はありません。したがって、Create_Listプロシージャは、コンマ区切りの項目を行にする一時表を作成します。次に、そのテーブルのすべての行から選択する必要があります。 – HyderA

答えて

2

CALLを破ってみて、別の文にSELECT。

関連する問題