1#楼 |
|
|
回复人:一起PHP |
注册时间:2004-02-27 |
主题/回复:247/1521 |
积分:4649 |
等级:★★★★★☆(十一级) |
称号:论坛圣人 |
|
|
|
1#楼 发表于2005-10-15 16:43:12
评分:1
|
|
mysql_insert_id()函数有一个可选参数项。参数为数据库连接号。比如
$id=mysql_connect(....);
mysql_query("insert into ....",$id);
$newid=mysql_insert_id($id);
这样可以顺利获得插入操作产生的自动编号。
如果参数$id不提供,则默认使用上一个打开的连接。因此也能正常返回。
你的程序中,没有看到连接数据库的语句,但是估计应该$db是连接号吧。然后你使用了mysqli_query()而不是mysql_query()来执行insert操作,因此不知道是不是这个原因导致的。但是即使是这个原因导致的,返回的结果不应该是这个错误提示,应该返回0。你的错误提示的意思是“未定义的函数mysql_insert_id()”,这个函数在php3,php4,php5中都支持,因此不应该提示函数未定义。除非你采用的PHP版本是精简版,不是完整的版本。
你可以把 mysqli_query()改为mysql_query(),并且为mysql_insert_id()指定参数,来试验一下。如果仍然有相同的提示,说明你的PHP有问题。
另外MYSQL也提供了一个函数可以返回上一次操作产生的ID,函数名为LAST_INSERT_ID() ,这个函数可以直接用在sql语句中。你可以试一下。 |
|
2#楼 |
|
|
回复人:xiaolt2005 |
注册时间:2005-09-20 |
主题/回复:6/7 |
积分:439 |
等级:★★☆(五级) |
称号:略有小成 |
|
|
|
2#楼 发表于2005-10-16 04:14:02
评分:×
|
|
问题已解决。
一定要为mysql_insert_id()指定参数:
$id = mysqli_insert_id(#db);
就行了。
其它现象:
1。$id = mysqli_insert_id;//只返回0
2。$id = mysql_insert_id();//同样是未定义的函数出错 |
|
3#楼 |
|
|
回复人:一起PHP |
注册时间:2004-02-27 |
主题/回复:247/1521 |
积分:4649 |
等级:★★★★★☆(十一级) |
称号:论坛圣人 |
|
|
|
3#楼 发表于2005-10-17 20:45:36
评分:♂
|
|
|