php - 如何手动插入值以及同时从一个表中选择到另一个表中?
问题描述
在这里,我正在这样做,而不是获取 CustomerID 的 MAX 值,而是得到 0。
我的客户数据表:
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)');
解决方案
您可以使用该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 列表不在 GROUP BY 子句中,并且包含非聚合列 .... 与 sql_mode=only_full_group_by 不兼容
此外,您似乎没有使用参数化查询。在这种情况下,您的代码将容易受到与SQL 注入相关的攻击。请学习使用Prepared Statements
推荐阅读
- node.js - 在 Node 中比较 hmac 签名的首选方法是什么?
- r - 使用 R 中的开始和结束标志确定事件的存在和唯一 ID
- node.js - 如何为 npm install 更改节点的堆栈大小
- r - 如何仅根据小数点后的最大值保留观察结果?
- php - 联盟路线、集装箱和 PDO
- javascript - 如何大写和删除句子/字符串中的空格?
- python - 将geopandas shapely 多边形转换为geojson
- python - 如何在不暂停正在运行的程序的情况下使用 python 发出警报?
- kubernetes - SSH 到本地 IBM 私有云集群中的主节点?
- excel - Excel公式计算仅包含单个日期的所有单元格