我想将数据插入数据库。我有一个表,命名成员有 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 不连续的行。