使用INSERT into和WHERE进行MySQLi查询,可能吗?

时间:2018-12-05 21:08:12

标签: php mysql session mysqli sql-insert

我需要使用PHP从HTML表单将值插入数据库中的表中。遵循查询

null

记录创建良好。输入了字符串以证明查询有效,实际查询使用的变量是从html表单用户输入中存储的数据代替的。

我使用了一个查询来存储来自客户表中的客户ID(自动递增)的值。我还使用$ _SESSION ['UserName']存储客户表中用户的用户名。从html表单用户输入创建的所有变量都可以正确存储,因为它们可以全部回显并按需回显。

尝试使用以下查询“

时出现我的问题
INSERT INTO tableX 
      (attractionID, customerID, number_of_people, date_of_attraction)
values ('X', 'Y', '2', '2020-12-01')

已从$ UserName = $ _SESSION ['UserName']创建$ UserName。

如果正在创建的记录取决于另一个表中的列,是否不可能在查询中使用WHERE?

对不起,如果这没有道理,我已经尽力解释了一下,但是我是MySQL和PHP的新手。

1 个答案:

答案 0 :(得分:0)

WHERE子句的目的是从表中过滤现有行。但是,INSERT无需引用任何现有行即可工作,因此WHERE毫无意义。如您所知,它会导致SQL错误。

如果您希望基于其他表中的行来INSERT行,则可以使用INSERT的变体来做到这一点,如下所示:

 INSERT INTO tableX  
        (attractionID, customerID, number_of_people, date_of_attraction, ownerId)
 SELECT 'X', 'Y', '2', '2020-12-01', userId
   FROM users WHERE UserName = '$UserName';

此查询根据示例中的某些常量以及另一张表中的列为tableX生成一行。