我想做一个查询来获取表中的最后一个 id (int) 以创建一个具有最后一个 id + 1 的新行,但实际上这只是将所有具有相同 id 的行放在一起
我的代码:
<?php
$servername = "localhost";
$user = "root";
$pass = "dbpass";
$dbname = "site";
$mail = $_POST['mail'];
$password = $_POST['password'];
// Create connection
$conn = mysqli_connect($servername, $user, $pass, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sqlID = "SELECT MAX(id) FROM `login`;";
if ($result = mysqli_query($conn, $sqlID)) {
$id = mysqli_fetch_row($result);
}
settype($id, "int");
$id = $id + 1;
$sql = "INSERT INTO login (`id`,`mail`,`password`)
VALUES ('".$id."','".$mail."','".$password."');";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
最佳答案
mysqli_fetch_row 总是返回一个数组,即使只有 1 个元素。所以 MAX(id) 在 $row[0] 中。
解决这个问题,你也不需要使用 settype。
关于php - 如何将 mySQL 的输出查询放入 php int 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39229293/