在这里,我正在这样做,而不是获得CustomerID的MAX值,而是得到0。
我的CustomerData表:
Columns
1 CustomerID
2 Name
3 PhoneNumber
4 Address
我的OrderTable1表
Columns
1 OrderID
2 TableID
3 OrderDate
4 OrderStatus
5 OrderDesc
6 CustomerID
INSERT INTO OrderTable1 (OrderDate,OrderStatus,OrderDesc,CustomerID)
VALUES ('$LenthOfService','$Quantity','$ItemName','(SELECT MAX(CustomerID) FROM CustomerData)');
答案 0 :(得分:0)
您可以使用INSERT INTO .. SELECT
语句。对于输入变量值,我们可以将SELECT
与CustomerID
表中的CustomerData
的最大值一起使用:
INSERT INTO OrderTable1 (OrderDate,OrderStatus,OrderDesc,CustomerID)
SELECT MAX('$LenthOfService') AS OrderDate,
MAX('$Quantity') AS OrderStatus,
MAX('$ItemName') AS OrderDesc,
MAX(CustomerID) AS CustomerID
FROM CustomerData
为了符合ANSI SQL,我们需要在变量值周围使用Max()
函数。有关更多详细信息,请访问:SELECT list is not in GROUP BY clause and contains nonaggregated column .... incompatible with sql_mode=only_full_group_by
此外,似乎您没有使用参数化查询。在这种情况下,您的代码将容易受到SQL injection相关攻击。请学习使用Prepared Statements