原创:商城开发中,真正唯一订单雏形-插入订单,获得订单的id,把订单id拼装到自定义订单号中

发布于 2021-04-17 18:50:04
@$mysql = mysql_connect('localhost','root','root');    
mysql_query('set names utf8');    
mysql_select_db('test');    
//$sql="insert into ddd2 set uid='".$str."'";    
//ddd2表模拟订单表,字段uid模拟订单号字段    
$sql="insert into ddd2 set addtime='".date("Y-m-d H:i:s")."'";    
mysql_query($sql);    
//$id=mysql_insert_id();    
$idrs=mysql_fetch_array(mysql_query("SELECT LAST_INSERT_ID()"));//用此代替mysql_insert_id()就可以解决非int型自增长取值不准的bug问题。    
$id=$idrs[0];    
//我们可以在更新前对$iddiy进行拼装。    
$iddiy=$id;    
$sql="update ddd2 set uid='".$iddiy."' where id=".$id;//uid模拟订单号字段    
mysql_query($sql);    
//apache下自带的ab.exe并发高压测试    
//ab.exe -c 100 -n 100 http://127.0.0.1/a1.php
#附上测试表结构:    
CREATE TABLE `ddd2` (    
`id` bigint(11) NOT NULL AUTO_INCREMENT,    
`uid` varchar(100) DEFAULT NULL,    
`addtime` datetime DEFAULT NULL,    
PRIMARY KEY (`id`),    
UNIQUE KEY `uid` (`uid`)    
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

$idrs=mysql_fetch_array(mysql_query("SELECT LAST_INSERT_ID()")); 有人会问为什么这样写呢?因为mysql_insert_id()是有bug的。在int型下是可以在的,在非int型如:bigint下,mysql_insert_id()取值就不准了。

本文章由作者原著。转载请注明来源,谢谢。


关注公众号,了解更多it技术(it问答网

0 条评论

发布
问题