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 に答える