从PHP调用的MySQL MAX(id)产生奇怪的值

ubi*_*con 5 php mysql

我只是想获得当前最高的表的自动递增值.我不需要知道下一个自动增量是什么,只是现在表中的最高值.我正在使用下面的代码,但无论实际的自动增量是什么,我最后插入的表,上次更新/修改的表,或者我可以看到的任何其他因素,值总是返回Resource id #4.由于两个原因,这让我感到困惑.首先我不明白为什么数字总是4,第二我不明白为什么我得到一个字符串值(用字母和符号)而不是一个整数. 这是什么交易?

<?php $highest_id = mysql_query("SELECT MAX(c_id) FROM customers"); ?>

Amb*_*ber 14

mysql_query不返回查询中的值,它返回结果资源.要获得实际值,您需要使用其中一个mysql_fetch_*函数,将结果资源传递给它mysql_query.

<?php
    $result = mysql_query("SELECT MAX(c_id) FROM customers");
    $row = mysql_fetch_row($result);
    $highest_id = $row[0];
?>
Run Code Online (Sandbox Code Playgroud)

或者更短......

<?php
    $highest_id = mysql_result(mysql_query("SELECT MAX(c_id) FROM customers"), 0);
?>
Run Code Online (Sandbox Code Playgroud)


Ami*_*ske 5

这是我的回答:

require_once 'db_cconnection.php';
$query = "SELECT MAX(stud_id) FROM student_tbl";
$result = mysqli_query($connection,  $query);
$row = mysqli_fetch_row($result);
echo $row[0];
Run Code Online (Sandbox Code Playgroud)

当您使用mysqli_fetch_row它时,它只会获取一行,因为我们只需要一行。$row将是一个数组。所以我们需要通过数组索引来获取它的值。