我需要使用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的新手。
答案 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
生成一行。