您当前位置: 首页 >  WEB技术 >  PHP INSERT INTO 返回ID 插入数据库返回操作ID(获取当前插入那条ID)
2014/2/8 13:54:45 分类:WEB技术

PHP INSERT INTO 返回ID 插入数据库返回操作ID(获取当前插入那条ID)

以下写这么多,最主要还是这个方法来返回插入的ID的  mysql_insert_id()

 有些时候在执行数据库的INSERT操作后需要知道其产生的ID(我用的MySQL,主键都是设的AUTO_INCREMENT,执行插入操作的时候不用指定ID的值而由数据库自行产生),这时候就可以使用PHP的函数mysql_insert_id()直接获得这个ID,非常方便。

但是有一点,如果在INSERT语句里面明确指出了具有AUTO_INCREMENT属性的ID列的值,那么函数将返回0,因为该ID值是由用户指定的,不是由数据库自动产生的。

PHP手册对该函数的描述如下:

mysql_insert_id()

mysql_insert_id() 函数返回上一步 INSERT 操作产生的 ID。如果上一查询没有产生 AUTO_INCREMENT 的 ID,则 mysql_insert_id() 返回 0。

语法:mysql_insert_id(connection)

参数connection,可选。规定 MySQL 连接。如果未规定,则使用上一个连接。

mysql_insert_id() 返回给定的 connection 中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 connection ,则使用上一个打开的连接。

如果需要保存该值以后使用,要确保在产生了值的查询之后立即调用 mysql_insert_id()。

<?php$con = mysql_connect("localhost", "hello", "321");if (!$con){ die(\'Could not connect: \' . mysql_error());}$db_selected = mysql_select_db("test_db",$con);$sql = "INSERTINTO person VALUES (\'Carter\',\'Thomas\',\'Beijing\')";$result = mysql_query($sql,$con);echo "ID of last inserted record is: " . mysql_insert_id();mysql_close($con);?>

mysql_insert_id() 返回给定的 link_identifier 中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 link_identifier,则使用上一个打开的连接。如果上一查询没有产生 AUTO_INCREMENT 的值,则 mysql_insert_id() 返回 0。如果需要保存该值以后使用,要确保在产生了值的查询之后立即调用 mysql_insert_id()。

LAST_INSERT_ID()

MySQL也提供了这么一个同样功能的API,它总是保存着最新产生的AUTO_INCREMENT值,并且不会在查询语句之间被重置,也就是说,在执行INSERT操作后,执行SELECT、UPDATE、DELETE语句都不会影响该API的返回值。

可以用 SELECT LAST_INSERT_ID(); 来查询LAST_INSERT_ID() 的返回值。

使用单条INSERT语句插入多条记录,,LAST_INSERT_ID() 只返回插入的第一条记录产生的AUTO_INCREMENT值。

 

 

--------------------------------------------------

$sql = "INSERT INTO `fanwe_deal` (name,sub_name,cate_id,img,taobao_cai,is_taobao,last_price,origin_price,current_price,city_id,is_effect,success_time,icon,shop_cate_id,is_shop,time_status) VALUES (\'{$newshop[$a][\'name\']}\',\'caiji\',\'0\',\'{$newshop[$a][\'img\']}\',\'{$newshop[$a][\'url\']}\',\'2\',\'{$newshop[$a][\'price\']}\',\'{$newshop[0][\'price\']}\',\'{$newshop[$a][\'price\']}\',\'1\',\'1\',\'1343035352\',\'{$newshop[$a][\'img\']}\',\'{$fenlei}\',\'1\',\'1\')";


//$sql = "INSERT INTO `fanwe_deal` (name) VALUES (\'{$newshop[0][\'name\']}\')";

//echo $sql;
mysql_query($sql,$link);
$d_id = mysql_insert_id();
$imgsql = "INSERT INTO `fanwe_deal_gallery` (img,deal_id,sort) VALUES (\'{$newshop[$a][\'img\']}\',\'{$d_id}\',\'0\')";
mysql_query($imgsql,$link);

echo $newshop[$a][\'name\'].$newshop[$a][\'url\'];

本文由胡金金个人网站整理发布,转载请注明地址:http://www.hujinjin.com/info/460.html

凡标明来源于胡金金个人网站的文章,皆为本站整理发布,若转载此文必须附原文链接,对部分平台更改其文内容当自己原创者,胡金金个人网站将保留其追究权利!
个人资讯推荐
友情链接