Php 在不使用自动增量的情况下,如何在向数据库表中插入值时递增列
我的数据库中有一列,我希望为我执行的每个insert语句增加该列Php 在不使用自动增量的情况下,如何在向数据库表中插入值时递增列,php,mysql,Php,Mysql,我的数据库中有一列,我希望为我执行的每个insert语句增加该列 $sql = "INSERT INTO card (#,creditCard, expdate, cvv) VALUES ('','$creditCardStore','2020-01-01','$cvv')"; 我无法将表格更改为使用自动增量 我在网上找到了这个,但我不知道该把它放在什么地方 $value = 1; for(...){ $sql = 'INSERT ...'; $value++;
$sql = "INSERT INTO card (#,creditCard, expdate, cvv)
VALUES ('','$creditCardStore','2020-01-01','$cvv')";
我无法将表格更改为使用自动增量
我在网上找到了这个,但我不知道该把它放在什么地方
$value = 1;
for(...){
$sql = 'INSERT ...';
$value++;
}
您可以尝试在表中插入以前的最大值,再加上一个:
INSERT INTO card (num, creditCard, expdate, cvv)
SELECT MAX(num) + 1, ?, '2020-01-01', ?
FROM card;
我用的是什么?信用卡存储和验证代码的占位符,假设您应该使用PHP准备的语句。检查最后一个是什么,将其设置为变量,增加另一个变量并插入该变量如何 类似这样的代码不是有效代码,只是我上面所说的描述 按ASC从卡限额1订单中选择 n1= n2=+1
然后在value中插入n2。试试这个,它会起作用的,只需在这个列中加上一
$sql = "INSERT INTO card set id=id+1,creditCard='$creditCardStore', expdate=''2020-
01-01', cvv='$cvv'";
您的代码易受SQL注入攻击。您应该使用事先准备好的声明。恕我直言,我将补充@Dharman的观点。支付卡行业安全标准非常严格。通过存储卡号,您的公司将面临非常高的负债。而且完全禁止存储CVV,您只能为了验证单个事务而收集它们。考虑使用支付处理器,如条纹或Braintree。请,请,重新考虑你的计划。当你有一两个小时的空闲时间时,问我如何知道这一点。只需将其定义为一个自动递增整数,并让引擎处理其余部分。我无法使用自动递增。我尝试过,但它显示了以下错误:错误:插入card4,ccnum,expdate,seccode选择MAX+1,************************7777,***2024-01-01,来自卡截断的“1234”不正确的双精度值:为什么要命名列?这是我要增加的列的名称。如果表为空,MAXnum是否必须包装在IFNULL中?警告:您完全可以使用参数化准备语句,而不是手动生成查询。它们由或提供。永远不要相信任何形式的输入!即使您的查询仅由受信任的用户执行。您还混淆了插入和更新语法。如果我理解正确,您的建议可能会受到竞争条件的影响。检查最后一个是什么,将其设置为变量并增加另一个变量,然后插入该变量如何是一个非常糟糕的描述,所以我做了一个虚拟文本