亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于mysql_insert_id()的大疑惑


求助各位:我遇到一個十分費解的問題!

在mysql.func.php中我們有兩段函數,其中一個是insert($table,$array),返回的是mysql_insert_id(),而后面我們又創建了一個函數getInsertId(),只有一個語句:return mysql_insert_id(); ? ?我于是覺得,前一個函數不是已經有后一函數的功能了嗎? ? 但我發現其中有問題。發現還真不能用addAlbum()函數(以為insert返回mysql_insert_id)代替getInsertId(),但是為什么呢? ?

function?addAlbum($arr){
insert("imooc_album",$arr);
}

上面是addAlbum函數,

以下為問題代碼,是pro.inc.php中的部分代碼:

$res=insert("imooc_pro",$arr);
//?$pid=getInsertId();
//?echo?$res.$pid;??調試用的,發現$res?和$pid的值一樣,所以我就不用getInsertId()了
echo?"immoc_pro:".$res."<br>";
//如果插入成功
if($res){??//省略了&&$pid?
????foreach($uploadFiles?as?$uploadFile){
????????$arr1['pid']=$res;
????????$arr1['albumPath']=$uploadFile['name'];
????????print_r($arr1);
????????echo?"<br>";
????????$affectedRow=addAlbum($arr1);
????????//?$affectedRow=getInsertId();??如果這樣就可行,但像上面一行這樣就不行,可他們返回的都是mysql_insert_id()
????????echo?"imooc_album:".$affectedRow."<br>";
????????if($affectedRow){
????????????$mes="添加成功!<a?href='addPro.php'?target='mainFrame'>繼續添加</a>";
????????}else{
????????????$mes="addAlbum?failed!";
????????}
????}
}

在添加商品欄目添加一些信息和圖片(內容隨便打的),發現

這段函數輸出的結果如下:

immoc_pro:30

Array ( [pid] => 30 [albumPath] => 00da9f030a4267855d0d705cc6d224cb.jpg )?

insert into imooc_album (pid,albumPath) values('30','00da9f030a4267855d0d705cc6d224cb.jpg')

imooc_album:

Array ( [pid] => 30 [albumPath] => 76d357dfa1e1570ddd6d47785e980bd9.jpg )?

insert into imooc_album (pid,albumPath) values('30','76d357dfa1e1570ddd6d47785e980bd9.jpg')

imooc_album:

Array ( [pid] => 30 [albumPath] => a4a6178694fa05aef62c233d296bde36.jpg )?

insert into imooc_album (pid,albumPath) values('30','a4a6178694fa05aef62c233d296bde36.jpg')

imooc_album:

addAlbum failed!


我們發現imooc_pro有mysql_insert_id()返回的值而imooc_album卻沒有值。想了半天也沒發現為什么!

其他一切都正常的,數據都插入表了,imooc_album里面也有pId和albumPath,沒有問題。

求大神解惑!


正在回答

1 回答

小伙伴們,我自己找到原因了,分享一下吧:

其實很簡單,但是容易忽略??!是因為:

function?addAlbum($arr){
????insert("imooc_album",$arr);
}

沒有返回值,導致insert返回的mysql_insert_id()丟失了。

這樣寫就沒有問題了:

function?addAlbum($arr){????$res=insert("imooc_album",$arr);
????return?$res;
}


2 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
手把手教你實現電商網站后臺開發
  • 參與學習       117252    人
  • 解答問題       2101    個

手把手教你用PHP搭建電子商務平臺,由淺入深教你搭建電商系統

進入課程

關于mysql_insert_id()的大疑惑

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號