8

我知道这并不复杂,但我不记得该怎么做。

我只需要知道下一个自动增量。

$result = mysql_query("
    SHOW TABLE STATUS LIKE Media
");
$data = mysql_fetch_assoc($result);
$next_increment = $data['Auto_increment'];

...但我不会为我工作,我做错了什么?

4

5 回答 5

16
$result = mysql_query("
    SHOW TABLE STATUS LIKE 'Media'
");
$data = mysql_fetch_assoc($result);
$next_increment = $data['Auto_increment'];

表的名称需要用单引号括起来,如下所示:'table_name'

所以它现在工作得很好。

:)

于 2009-09-03T08:24:55.610 回答
9

查询应如下所示:

SHOW TABLE STATUS WHERE `Name` = 'Media';
于 2009-09-03T08:25:50.680 回答
2

另一种方法,但很慢,是:

SELECT AUTO_INCREMENT FROM information_schema.`TABLES` T where TABLE_SCHEMA = 'myScheme' and TABLE_NAME = 'Media';

information_schema 对于从许多方案中获取数据最有用。

于 2009-09-03T08:45:45.827 回答
0

您也可以使用此功能

function getNextValue(){
$query = "SHOW TABLE STATUS LIKE 'vendors'";
dbconnect();
$results=mysql_query($query);
if(mysql_errno() != 0) {
    $result['count'] = -1;
    $result['error'] = "Error: ".mysql_error();
} else {
    $result['count'] = mysql_num_rows($results);
    for($counter=0;$counter<$result['count'];$counter++) {
        $result[$counter] = mysql_fetch_assoc($results);
    }
}
return $result[0]['Auto_increment'];
mysql_close();
}
于 2013-12-07T23:09:39.877 回答
-2

如果您需要知道下一个auto_increment,那么 99% 的可能性是您做错了。而不是获取下一个 auto_increment,您应该只执行您将要执行的插入操作,然后使用SELECT LAST_INSERT_ID()从该插入操作获取 auto_increment 值。

如果您尝试猜测下一个 auto_increment 值并且有多个用户同时进行猜测,那么您经常会得到错误的值。

于 2009-09-03T14:58:15.260 回答