PHP函数没有';t按应有的方式递增int

PHP函数没有';t按应有的方式递增int,php,Php,在我的XAMPP服务器上,phpMyAdmin上有一个数据库表。在该表中,我有几个列,其中一个是idcolumn(Integer) 我想获取最新添加的项的ID,将其递增1,然后将其分配给函数添加到表中的新项 问题是,每当有一个新项目时,它都会自动被分配1作为id,而1以上的任何内容都不会被分配 $sql = "SELECT * FROM items"; $result = $conn->query($sql); if ($result->num_rows > 0) {

在我的XAMPP服务器上,phpMyAdmin上有一个数据库表。在该表中,我有几个列,其中一个是
id
column(Integer)

我想获取最新添加的项的ID,将其递增1,然后将其分配给函数添加到表中的新项

问题是,每当有一个新项目时,它都会自动被分配1作为id,而1以上的任何内容都不会被分配

$sql = "SELECT * FROM items";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while ($row = $result->fetch_assoc()) {
        if( $_SESSION["increment"] == "yes"){
            $_SESSION["id"] = $row["id"];
        }else
            $_SESSION["id"]=$_SESSION["id"]+1;
    }
} else {
    $_SESSION["id"] = 1;
}

在我看来,您需要在MySQL数据库中构建众所周知的自动增量功能。只需在表的数据库架构中定义该列为自动增量列类型,并且在每次向表中插入新内容时,该列将自动递增1。

这将为您提供最后一个增量Id

 $sql = "SELECT id FROM items order by id DESC LIMIT 0,1";
然后,您不希望有一个while循环来查找最后一个增量Id

 $sql = "SELECT id FROM items order by id DESC LIMIT 0,1";
说什么?和
mysqli\u错误($conn)

--弗雷德二世-

  • Fred-ii的上述请求总结起来,如果您的
    ->num_rows
    返回零或不是数字(
    false
    ),那么您有一个SQL错误,因此您需要检查,并检查您的

  • 您是否已使用
    会话\u start
    开始会话

  • 您是否希望第一个
    else
    调用时不带括号,只执行下面的一行,
    $\u SESSION[“id”]=$\u SESSION[“id”]+1


说了什么?还有
mysqli\u error($conn)
?这整件事对我来说似乎是个错误是的,但我还需要函数本身的id来进行进一步的操作。ok,你可以通过mysqli->insert\u id()