php - 如何将 mySQL 的输出查询放入 php int 变量

标签 php mysql

我想做一个查询来获取表中的最后一个 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/

相关文章:

php json_encode 部分不适用于数组

php - 获取最后插入的 ID 并将其用作 PHP/MySQL 的参数

mysql - 如何正确设置mySQL中的id限制?

mysql - Rails 启动脚本运行两次

php - Magento:<?php echo $this->getChildHtml ('content' ) 的内容 ?>

php - Laravel 5.6 无法使用 save() 函数将数据保存到具有复合主键的模型中

php - sqlsrv_num_rows 不返回任何值

mysql - GROUP BY 按列聚合

mysql - 数据库表是在检索之前还是之后排序的?

mysql - 新手需要查询帮助(MYSQL)