首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  MYSQL/SQL语句/PHPMYADMIN专栏 » [求助]急mysql_insert_id()出错  


  作者:xiaolt2005
  注册时间:2005-09-20
  主题/回复:6/7
  积分:439
  等级:★★☆(五级)
  称号:略有小成

  xiaotongwin1@163..
  未提供
  www.

 

 发表:2005-10-15 08:43:32 阅读 4679 次 回复 3 次 得分1  |   字号 字色
[求助]急mysql_insert_id()出错
急mysql_insert_id()出错,提示Call to undefined function mysql_insert_id()
我是这样用的:
$query="insert into products values
       ('','".$model."','".$volume."','".$color."')";
 
    $result= mysqli_query($db,$query);
$id = mysql_insert_id();
 
 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  评分: 

恩,受教了。
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.005sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版