来自主键的MAX id并在PHP中添加1

时间:2014-12-08 20:10:00

标签: php mysql

我试图在REDES表中获取最大主键,以便添加一个,但它不起作用。我也想知道这是否是最好的方式,如果它是安全的。

// mysql inserting a new REDES field
//$redes_maxid = mysql_query("SELECT MAX(id_redessociales) AS id FROM REDES");
//$newmaxid = $redes_maxid + 1;
$redes_maxid = mysql_fetch_row(mysql_query("SELECT max(id_redessociales) AS id FROM REDES"));
$newmaxid = $redes_maxid[0] + 1;
mysql_query("INSERT INTO REDES(id_redessociales, facebook, twitter, linkedin, pinterest) VALUES ('$newmaxid', NULL, NULL, NULL, NULL");

谢谢!

3 个答案:

答案 0 :(得分:1)

你正在做的事情是非常不安全和错误的。

这就是为什么我们在数据库中有auto increment个字段,只需将表中的id字段设置为自动递增,然后在插入新行时只需将NULL传递给{{} 1}},MySQL它将自动安全地为你做这个增量。

here's a link到文档

答案 1 :(得分:0)

您可以按降序排序并限制1行结果

来获取最后一个ID

替换此行

$redes_maxid = mysql_fetch_row(mysql_query("SELECT max(id_redessociales) AS id FROM REDES"));

$redes_maxid = mysql_fetch_row(mysql_query("SELECT id_redessociales AS id FROM REDES order by id_redessociales DESC limit 1"));

答案 2 :(得分:-1)

确切地说是A.B所说的 但是,你不应该让数据库中的ID行自动递增吗? 您可以将其设置为自动递增,当您插入记录时只需插入ID NULL,数据库将自动将其编号为最后一个ID + 1

如果您正在使用mySql,那么您可以使用此SQL语句

ALTER TABLE  `myTable` CHANGE  `id`  `id` TINYINT( 3 ) PRIMARY KEY UNSIGNED NOT NULL AUTO_INCREMENT