0

これは私のクエリです -

$q = "CREATE TEMPORARY TABLE tmp SELECT * from category c  WHERE category_id IN (SELECT category_id FROM category_to_store WHERE store_id = '".(int)$from_store_id."');
                ALTER TABLE tmp drop category_id; 
                INSERT INTO category SELECT 0,tmp.* FROM tmp;
                SET @last_id_in_category := LAST_INSERT_ID();
                select @last_id_in_category;
                DROP TABLE tmp;"

mysql_query($q);

実行時にこのエラーが発生します

エラー: SQL 構文にエラーがあります。near 'ALTER TABLE tmp drop category_id; を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。INSERT INTO category SELECT 0' at line 2 Error No: 1064

しかし、データベースで直接クエリを実行すると、エラーは発生しません。私を助けてください !

4

1 に答える 1

3

「mysql_query」のphpドキュメントから


mysql_query()は、現在アクティブなデータベースに一意のクエリ (複数のクエリはサポートされていません) を送信します ...


したがって、基本的にはクエリを複数の `mysql_query' 呼び出しに分割し、それぞれに単一のクエリを使用すれば問題ありません。

于 2012-04-25T13:08:30.683 に答える