如何在 php 中使用计数



我想将数据插入数据库。我有一个表,命名成员有 7 列(ID、用户、密码、地址、电话、性别、电子邮件)。我用计数来制作这样的自动编号

$no = "SELECT COUNT(ID)FROM member";
$nors = mysql_query($no);
$nors = $nors + 1;
$query = "INSERT INTO member VALUES (".$nors.",'".$user."','".md5($pass)."','".$name."','".$addr."',".$hp.",'".$gender."','".$email."')";

为什么,nors 的结果是 6 而不是 2,尽管我只有 1 个数据?

mysql_query返回结果对象,而不是值。您的查询在COUNT(ID)FROM之间也缺少所需的空格......

$no = "SELECT COUNT(ID) AS count FROM member";
$result = mysql_query($no);
$row = mysql_fetch_object($result);
$nors = $row->count;

不过,您应该考虑使用更现代的东西,例如PDO,因为mysql_*函数已被弃用,最终将完全消失。

编辑:@andrewsi评论中指出,无论如何,您确实应该对ID使用MySQL的内置自动增量功能。比你现在做的要好得多。

如果您使用它为新成员生成下一个 ID 号,您应该考虑将 ID 设为auto_increment字段 - 就目前而言,您可能会让两个成员同时注册,并且都分配了相同的 ID

替换

此行

$nors = mysql_query($no); 

通过这些行:

$result_handler = mysql_query($no); 
$result = mysql_fetch_array($result_handler);
$nors = $result[0];

如果您的 id 字段设置为自动编号,则无需插入它。 MySql 将为您处理这个问题。 每当添加新行时,自动编号都会递增。如果删除一行,则自动编号不会递减。

如果您目前只有 1 行,但已添加和删除行,则插入的内容将生成 ID 不连续的行。

相关内容

  • 没有找到相关文章

最新更新