我正在做一个由PHP和MySQL创建的调查。所以问题是,我正在尝试创建一个ResponseID,它是每个提交调查的人的特定ID。因此,创建代码的目的是将ResponseID列中现有的最大值加1。代码如下:
//Response ID creation
$query = "SELECT max(ResponseID) FROM survey";
$res = mysql_query($query);
$RID = $res+1; 我知道我可以压缩它,但问题是:我已经在表格上输入了一个ResponseID为1的项目。当我用不同的答案测试调查时,下一个ResponseID是5。它应该是2。所以我再次测试,看看下一次是否会产生6。
不幸的是,它再次产生了5。我让我的PHP专家检查了一下,他说代码是正确的,应该是来自数据库的东西。我没有在ResponseID中设置任何东西,除了它是一个整数。那么为什么它会产生一个5呢?如果有人可以告诉我如何去修复它,那将是非常酷的你。
我对PHP有些陌生。
发布于 2011-09-23 04:11:45
$res将是mysql语句句柄,而不是查询的结果。您仍然需要从这个$res结果中实际提取一行,才能访问查询中的max()函数的值。
这个句柄可能在内部有标识符#5,这就是为什么你会得到“奇怪”的结果。
代码应该是:
$sql = "SELECT MAX(responseID) AS max ...";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);
$RID = $row['max'] + 1;发布于 2011-09-23 04:09:17
$res是一个资源,而不是查询的值,请阅读手册:http://nz.php.net/manual/en/function.mysql-query.php
发布于 2011-09-23 04:11:14
为什么不使用AUTO_INCREMENT列并使用mysql_insert_id检索新值
https://stackoverflow.com/questions/7520773
复制相似问题