@$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()
取值就不准了。
本文章由作者原著。转载请注明来源,谢谢。