当前位置: 首页 > 知识库问答 >
问题:

mysql插入-选择语法错误

穆阳嘉
2023-03-14

这是我的疑问-

$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个答案

席俊
2023-03-14

从`mysql_query'上的php文档

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

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

 类似资料:
  • 问题内容: 有没有办法插入预设值和我从选择查询中获得的值?例如: 我有“字符串”的值和数字5,但是我必须从这样的选择中找到[int]值: 那给我那个ID放在table1里面。 如何将其合并为一个语句? 问题答案: 使用查询,并将已知值放入:

  • 问题内容: 我想知道是否可以运行这样的请求: 这个想法是用t1的一些数据填充t2,但是我在语法上一定是错误的。 谢谢你的帮助 问题答案: 从语句插入时不使用关键字。

  • 问题内容: 好的。简而言之,我正在尝试执行INSERT SELECT,例如: 当然,@key不会从每个插入中返回每个后续的LAST_INSERT_ID(),而是仅从最后一个插入返回ID。 基本上,我将旧的USER表拆分为ENTITY和USER,例如: 我为什么要这样做?基本上,我有一个“商店”实体,它将具有“用户”公用的字段,例如地址和电话号码。因此,任何“ ENTITY”都可能没有多个地址(送货

  • 您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以了解第1行“.255.255、55555、12)”附近使用的正确语法。 为什么这不起作用?

  • 问题内容: 我正在尝试向表中插入其他行,该表要求从另一个表中检索一个值。以下是查询示例: 表的结构为。 我知道以上查询是错误的。有没有办法在插入行时从其他表中检索1个值? 问题答案: 一些DBMS会接受以下内容,并在SELECT语句的周围加上括号:

  • 我有以下结构 和3个查询 解释我为什么只有第一个作品???? 我一辈子都在用第三个!