我需要使用PHP从HTML表单将值插入数据库中的表。查询之后
INSERT INTO tableX
(attractionID, customerID, number_of_people, date_of_attraction)
values ('X', 'Y', '2', '2020-12-01')
记录创建良好。输入字符串是为了证明查询的有效性,实际的查询使用的是带有数据的变量,这些数据存储在html表单用户输入的位置。
我使用了一个查询来存储customer表中customerID(auto_increment'ed)的值。我还使用$_SESSION ['UserName']来存储customer表中用户的用户名。从html表单用户输入创建的所有变量都被正确存储,因为它们都可以被回显。
我的问题出现在尝试使用以下查询时“
INSERT INTO tableX
(attractionID, customerID, number_of_people, date_of_attraction)
values ('X', 'Y', '2', '2020-12-01') WHERE UserName = '$UserName'
已从$UserName = $_SESSION ['UserName']创建$UserName。
如果要创建的记录依赖于另一个表中的列,是否不能在查询中使用WHERE?
对不起,如果这没有意义,我已经尽力解释了,但我是MySQL和PHP的新手。
1条答案
按热度按时间w8biq8rn1#
WHERE
子句的目的是从表中筛选现有行。但是,INSERT
在不引用任何现有行的情况下工作,因此WHERE
没有意义。它会导致SQL错误,正如您所了解的。如果你希望基于其他表中的行
INSERT
行,你可以用INSERT
的变体来实现,它看起来像这样:此查询根据示例中的一些常量和另一个表中的列为
tableX
生成一行。