Php 选择计数不计数

Php 选择计数不计数,php,mysql,variables,select,count,Php,Mysql,Variables,Select,Count,我试图构建一个集成了其他变量的变量 其中之一是一个自动递增字段的编号,稍后将在该字段中执行插入查询 我尝试使用: $get_num = $db/*=>mysqli*/->query("SELECT COUNT (*) auto_increment_column FROM table1"); $num = $query->fetch_assoc($get_num); $end = $num + 1; 在此之前,我没有任何更新/

我试图构建一个集成了其他变量的变量

其中之一是一个自动递增字段的编号,稍后将在该字段中执行插入查询

我尝试使用:

$get_num = $db/*=>mysqli*/->query("SELECT COUNT (*) auto_increment_column FROM table1");  
            $num = $query->fetch_assoc($get_num);
            $end = $num + 1;
在此之前,我没有任何更新/插入查询,因此无法使用

$end = $db->insert_id;
这就是为什么我认为我可以只计算自动递增行的数量,并拥有构建新变量所需的最后一个变量

出于某种原因,这不会将条目和输出计数为0。我不明白为什么会这样

如果有人能告诉我我做错了什么,我将不胜感激。非常感谢

更新

对于每个想知道目标是什么的人:

我想为一个文件创建一个特定的名称或id,该文件稍后将通过输入insert查询中的字段来创建。我想要一把独一无二的钥匙。此密钥由用户id和时间戳组成。在这个生成的变量的末尾,应该放置将被放置在表中的查询的自动增量编号。所以问题是,我在插入查询发生之前创建了一个变量,以便该变量将成为插入查询的一部分,如下所示:

$get_num = $db->query("SELECT COUNT (*) FROM tableA");  
$num = $query->fetch_assoc();
$end = $num + 1;

$file_id = $id .".". time() .".". $end;

$insert = $db->query("INSERT INTO tableA ( file_id, a, b, c) VALUES('".$file_id."','".$a."','".$b."','".c."')");{
希望现在我能清楚地知道我喜欢做什么。

试试看

SELECT COUNT(*) FROM table1
试一试


如果在MySQL中需要一个自动递增列,那么应该使用。它为您实现了这一切,并避免了比赛条件。您试图实现它的手动方式有两个缺陷,即

如果两个脚本同时尝试插入,它们可能都会得到相同的计数,比如说10,因此它们都尝试使用ID 11进行插入。一个将失败,否则你将有重复! 如果添加10个项目,然后删除项目1,则计数将返回9,但id 10已存在。
如果在MySQL中需要一个自动递增列,那么应该使用。它为您实现了这一切,并避免了比赛条件。您试图实现它的手动方式有两个缺陷,即

如果两个脚本同时尝试插入,它们可能都会得到相同的计数,比如说10,因此它们都尝试使用ID 11进行插入。一个将失败,否则你将有重复! 如果添加10个项目,然后删除项目1,则计数将返回9,但id 10已存在。
为什么你不能在插入后检查插入id?在插入行之前,您真的需要知道行的id吗?因为我喜欢生成一个不能存在两次的变量,并且我要查找的这个变量应该是insert查询的一个元素。这个新变量中的其他变量是由时间或特定id生成的。就我自己而言,我喜欢在这个新变量的输出中看到一些键,比如$id-$unix timestamp-$auto_increment_nr。出于这个原因,我喜欢使用它。我想先保存我自己的,生成一个插入,然后再进行更新。对不起,我不明白你想实现什么。不管是什么,不要再发明轮子了。如果您需要MySQL中的自动递增id,请使用自动递增。如果你在PHP中需要它,请使用类似的东西,但这在你的应用程序中不是唯一的,只是在你的请求中。我已经更新了我的问题。为什么你不能在它之后执行插入并检查插入id?在插入行之前,您真的需要知道行的id吗?因为我喜欢生成一个不能存在两次的变量,并且我要查找的这个变量应该是insert查询的一个元素。这个新变量中的其他变量是由时间或特定id生成的。就我自己而言,我喜欢在这个新变量的输出中看到一些键,比如$id-$unix timestamp-$auto_increment_nr。出于这个原因,我喜欢使用它。我想先保存我自己的,生成一个插入,然后再进行更新。对不起,我不明白你想实现什么。不管是什么,不要再发明轮子了。如果您需要MySQL中的自动递增id,请使用自动递增。如果你在PHP中需要它,可以使用类似的东西,但这在你的应用程序中不是唯一的,只是在你的请求中。我已经更新了我的问题。