scipt应该从表中的主键(auftrag_id)中减去1。但不知怎的,它不起作用。变量$ preauftrag_id没有减少。变量的类型是整数。我尝试了几种减法方法,但都没有。有人有想法吗?
$auftrag_id = $db->insert_id;
$preauftrag_id = $auftrag_id;
$preauftrag_id--;
echo "$preauftrag_id"; // Turns out the same value as $preauftrag_id = $auftrag_id;
答案 0 :(得分:1)
再想一想,如果$ db-> insert_id返回一个对象,则通过引用分配PHP变量。
因此,您基本上已经指定了另一种访问$ auftrag_id的方法,但是您没有采用它的值:
$auftrag_id $preauftrag_id
\ /
------memory------
(抱歉可怕的图片)
因此,递减$ preauftrag_id实际上会减少与$ auftrag_id相同的引用,这可能是不允许的,因为它是DB类的STATIC变量?
答案 1 :(得分:1)
假设您想要倒数第二行的id
(刚插入的那一行之前的那一行),唯一可靠的方法是运行查询。试试这个:
$query = 'SELECT id
FROM table
WHERE id < '.(int) $db->insert_id.'
ORDER BY id DESC
LIMIT 1';
那应该在有问题之前获取行的id。
答案 2 :(得分:0)
如果是,请尝试使用整数转换:
$auftrag_id = (int) $db->insert_id;
$preauftrag_id = $auftrag_id;
$preauftrag_id--;
echo "$preauftrag_id"; // Turns out the same value as $preauftrag_id = $auftrag_id;