| 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
      评分:♂ |  | 
     
     |  |