-1

这是我的注册 PHP 表单的查询部分。
account, password,emailage可以由注册页面用户插入,它们运行良好,但是,列account_id需要在每个注册过程中自动增加 1。

表名Account不是帐户,列名是account_id

$query = "INSERT Account( account,password,email,pk_,type_ ) VALUES('$username','$converted_password','$email',1,'$age')";
$query_total = mssql_query("SELECT COUNT(account_id) FROM Account");
$results_check = mssql_query($query_check);
$results_total = mssql_fetch_row($query_total);
$result_total = $results_total['0'];

它为 (account_id) 列提供了一个 NULL 值,并且 INSERT 失败。

4

2 回答 2

1

在您的数据库上执行以下查询:(基于 Mysql 的查询!!不是 Mssql !!)

ALTER TABLE `Account` CHANGE `account_id` `account_id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY;

这将导致自动增量。如果这失败了,您可能已经拥有重复项,您必须先解决这个问题。有很多方法可以做到这一点,尽管它主要取决于与其他表的连接。

之后,每次插入帐户时不包括 account_id。使用 mysql 查询:

select LAST_INSERT_ID();

检索最后插入的 id。

在 PHP 中你可以使用http://nl1.php.net/mysql_insert_id虽然我强烈建议你开始研究http://www.php.net/PDOhttp://www.php.net/mysqli与准备好的陈述。

因为据我了解,在下一版本的 PHP 中,基本的 Mysql 函数将被弃用。准备好的陈述更好/更安全。(如果使用得当)

于 2013-09-23T14:46:26.733 回答
0

在 MySQL 中将 account_id 设置为自动递增,并且不要为字段 account_id 向 MySQL 数据库发送任何内容。MySQL 会自动创建一个新的 ID。

阅读有关自动增量的内容:http: //dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html

*编辑:

也改变

$query = "INSERT Account( account,password,email,pk_,type_ ) VALUES('$username','$converted_password','$email',1,'$age')";

$query = "INSERT INTO Account(account,password,email,pk_,type_) VALUES('$username','$converted_password','$email',1,'$age')";
于 2013-09-23T14:39:20.210 回答