Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP调用的MySQL MAX(id)产生奇怪的值_Php_Mysql - Fatal编程技术网

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

从PHP调用的MySQL MAX(id)产生奇怪的值,php,mysql,Php,Mysql,我只是想得到当前最高的表的自动递增值。我不需要知道下一个自动增量是什么,只需要知道表中当前值的最高值。我正在使用下面的代码,但不管实际的自动增量是什么、上次插入的表是什么、上次更新/修改的表是什么,或者我可以看到的任何其他因素,该值始终返回资源id 4。这让我感到困惑,有两个原因。首先我不明白为什么数字总是4,其次我不明白为什么我得到的是带字母和符号的字符串值,而不是一个整数。这里的交易是什么 mysql\u查询返回一个结果句柄,而不是实际结果。换句话说,您的查询结果保存为资源id 4,但这并不

我只是想得到当前最高的表的自动递增值。我不需要知道下一个自动增量是什么,只需要知道表中当前值的最高值。我正在使用下面的代码,但不管实际的自动增量是什么、上次插入的表是什么、上次更新/修改的表是什么,或者我可以看到的任何其他因素,该值始终返回资源id 4。这让我感到困惑,有两个原因。首先我不明白为什么数字总是4,其次我不明白为什么我得到的是带字母和符号的字符串值,而不是一个整数。这里的交易是什么

mysql\u查询返回一个结果句柄,而不是实际结果。换句话说,您的查询结果保存为资源id 4,但这并不保证总是相同的,如果您一直这样看,那就是巧合

要访问结果,您需要使用类似或同一系列中的其他函数之一

大概是这样的:

<?php 

$query = mysql_query("SELECT MAX(c_id) as max FROM customers"); 
$row = mysql_fetch_array($query);
$highest_id = $row['max'];

?>
mysql\u查询不返回查询中的值,它返回一个结果资源。要获得实际值,需要使用mysql\u fetch\u*函数之一,将从mysql\u查询中获得的结果资源传递给它

或者更短的

<?php
    $highest_id = mysql_result(mysql_query("SELECT MAX(c_id) FROM customers"), 0);
?>
这样做的方式是什么 假设您有数据库$this->db

$maxid = $this->db->query('SELECT MAX(c_id) FROM `customers`')->fetchColumn();
我的答案是:

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];

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

我觉得把它贴在上面有点傻,但是是的,我一开始确实是这样的,但是结果是返回的。我将编辑我的帖子,向你展示我一开始尝试过的东西,这就是你的建议。好吧,我知道我做错了什么。我的原始代码使用了mysql\u fetch\u数组,然后把$row[0]中的0搞糟了。谢谢你的帮助!非常简洁,但应该是:$highest\u id=mysql\u resultmysql\u querySELECT MAXc\u id FROM customers,0;
$maxid = $this->db->query('SELECT MAX(c_id) FROM `customers`')->fetchColumn();
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];