提问者:小点点

mysql插入-选择语法错误


这是我的疑问-

$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语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得使用“alter TABLE tmp drop category_id”附近的正确语法;在第2行插入类别SELECT 0'错误号:1064

但是当我直接在数据库中运行查询时,我不会得到任何错误。请帮帮我!


共1个答案

匿名用户

从`mysql_query'上的php文档

mysql_query()向当前活动数据库发送唯一查询(不支持多个查询)...

因此,基本上将您的查询拆分为多个`mysql_query'调用,每个调用都有一个查询,您应该就可以了。