我將輸入表單插入兩個不同的表中。第一個表用於信息,另一個表用於信息的圖像。 提交信息時,我想在單獨的表中的第一張表的每一行上載多張圖像,並且還將last_insert_id插入到第二張表中的每張圖像中。 表格1 位置編號|地址|聯繫信息 表2 pictureID |位置編號|文件路徑 使用以下代碼,它僅插入一個圖像,但是將所有圖像上傳到文件夾中。 <?php include_once'dbconnect.php'; mysql_query(“ SET NAMES UTF8”); session_start(); $ tbl_name =“位置”; $ tbl_image =“圖片”; if(isset($ _ POST ['btn-upload'])){ $ name2 = $ _ POST ['name2']; $ phone = $ _ POST ['phone']; $ email = $ _ POST ['email']; $ type = $ _ POST ['type']; $ other = $ _ POST ['other']; $ description = $ _ POST ['description']; $ address = $ _ POST ['address']; $ name = $ _ POST ['name']; $ lat = $ _ POST ['lat']; $ lng = $ _ POST ['lng']; $ country = $ _ POST ['country']; $ administrative_area_level_1 = $ _ POST ['administrative_area_level_1']; $ place_id = $ _ POST ['place_id']; $ url = $ _ POST ['url']; $ website = $ _ POST ['website']; $ sql =“ INSERT INTO $ tbl_name(name2,電話,電子郵件,類型,其他,描述,地址,名稱,lat,lng,國家/地區,administration_area_level_1,place_id,url,網站) ,“ $ email”,“ $ type”,“ $ other”,“ $ description”,“ $ address”,“ $ name”,“ $ lat”,“ $ lng”,“ $ country”,“ $ administrative_area_level_1” ,'$ place_id','$ url','$ website')“; $ result = mysql_query($ sql); for($ i = 0; $ i <計數($ _FILES ['image'] ['tmp_name']); $ i ++) { $ file = rand(1000,100000)。“-”。$ _ FILES ['image'] ['name'] [$ i]; $ file_loc = $ _FILES ['image'] ['tmp_name'] [$ i]; $ file_size = $ _FILES ['image'] ['size'] [$ i]; $ file_type = $ _FILES ['image'] ['type'] [$ i]; $ folder =“ uploads /”; //新文件大小(以KB為單位) $ new_size = $ file_size / 1024; //新文件大小(以KB為單位) //使文件名小寫 $ new_file_name = strtolower($ file); //使文件名小寫 $ final_file = str_replace('','-',$ new_file_name); $ res = mysql_query(“ SELECT * FROM users WHERE userId =”。$ _ SESSION ['user']); $ userRow = mysql_fetch_array($ res); $ userID = $ userRow ['userID']; 如果(move_uploaded_file($ file_loc,$ folder。$ final_file)) { $ sql =“ INSERT INTO $ tbl_image(user_ID,Location_ID,file)VALUES('$ userID',LAST_INSERT_ID(),'$ final_file')”; mysql_query($ sql); ?> <腳本> 警報(“成功上傳”); window.location.href ='index.php?成功'; script> <?php } 其他 { ?> <腳本> alert('上傳文件時出錯'); window.location.href ='index.php?fail'; script> <?php } } 如果($結果){ 回顯“成功”; 迴聲“
”; 迴聲“ 返回主頁”; } 其他{ 回顯“ ERROR”; } if($ result1){ 回顯“上傳成功”; 迴聲“
”; 迴聲“ 返回主頁”; } 其他{ 回顯“ ERROR”; } } ?> <?php //關閉連接 mysql_close(); ?>
2020-12-07 22:37:19
$ b = $ pdo-> prepare(“插入到table1中SET SET address =:address,contact = contact $ b-> bindParam(“:address”,$ address); $ b-> bindParam(“:contact”,$ contact); $ b-> execute(); $ LastId = $ pdo-> lastInsertId(); if($ LastId> 0){ $ b = $ pdo-> prepare(“插入`table2` SET`pictureID` =:pictureID,`filepath` =:filepath”); $ b-> bindParam(“:pictureID”,$ LastId); $ b-> bindParam(“:filepath”,$ filepath); $ b-> execute(); } | 最後想通了。出現問題的是last_insert_ID。必須在For循環外聲明Last_instert_ID。 $ locationID = mysql_insert_id($ conn); 在第一個插入查詢的正下方添加了上方。 $ sql =“ INSERT INTO $ tbl_location(name2,電話,電子郵件,類型,其他,描述,地址,名稱,lat,lng,國家/地區,administration_area_level_1,place_id,url,網站) 值(“ $ name2”,“ $ phone”,“ $ email”,“ $ type”,“ $ other”,“ $ description”,“ $ address”,“ $ name”,“ $ lat”,“ $ lng ','$ country','$ administrative_area_level_1','$ place_id','$ url','$ website')“; $ result = mysql_query($ sql); $ locationID = mysql_insert_id($ conn); for($ i = 0; $ i <計數($ _FILES ['image'] ['name']); $ i ++) { $ file = rand(1000,100000)。“-”。$ _ FILES ['image'] ['name'] [$ i]; $ file_loc = $ _FILES ['image'] ['tmp_name'] [$ i]; $ file_size = $ _FILES ['image'] ['size'] [$ i]; $ file_type = $ _FILES ['image'] ['type'] [$ i]; $ folder =“ uploads /”; //新文件大小(以KB為單位) $ new_size = $ file_size / 1024; //新文件大小(以KB為單位) //使文件名小寫 $ new_file_name = strtolower($ file); //使文件名小寫 $ final_file = str_replace('','-',$ new_file_name); $ res = mysql_query(“ SELECT * FROM users WHERE userId =”。$ _ SESSION ['user']); $ userRow = mysql_fetch_array($ res); $ userID = $ userRow ['userID']; 如果(move_uploaded_file($ file_loc,$ folder。$ final_file)) { $ sql2 =“ INSERT INTO $ tbl_image(user_ID,Location_ID,file)VALUES('$ userID','$ locationID','$ final_file')” ;; $ result = mysql_query($ sql2); ?> <腳本> 警報(“成功上傳”); window.location.href ='index.php?成功'; script> <?php } 其他 { ?> <腳本> alert('上傳文件時出錯'); window.location.href ='index.php?fail'; script> <?php } } | //如何在數據庫中上傳多個圖像,但如何將圖像保存在帶有上次插入ID且帶有循環的上載表的文件夾中// 表1-表1 ID | field1 |場2 table2-上傳 pictureID | ID |上傳圖片 <?php include(“ config.php”); if(isset($ _ POST ['submit'])){ $ field1 = $ _ POST ['field1']; $ field2 = $ _ POST ['field2']; $ sql = mysql_query(“ INSERT INTO table1(field1,field2)VALUES('field1','field2')”); //插入記錄表1 if($ sql){ $ last = mysql_insert_id(); } if(isset($ _ FILES ['uploadimage'] ['name']))// //此處使用的上載圖像文件名和表列名相同 { $ file_name_all =“”; for($ i = 0; $ i <計數($ _FILES ['uploadimage'] ['name']); $ i ++) { $ tmpFilePath = $ _FILES ['uploadimage'] ['tmp_name'] [$ i]; 如果($ tmpFilePath!=“”) { $ path =“ uploadimages /”; //創建文件夾名稱 $ name = $ _FILES ['uploadimage'] ['name'] [$ i]; $ size = $ _FILES ['uploadimage'] ['size'] [$ i]; list($ txt,$ ext)=爆炸(“。”,$ name); $ file = time()。substr(str_replace(“”,“ _”,$ txt),0); $ info = pathinfo($ file); $ filename ='圖像'。 $ file。“ ... $ ext; } if(move_uploaded_file($ _ FILES ['uploadimage'] ['tmp_name'] [$ i],$ path。$ filename)) { $ sql_image = mysql_query(“插入上載(ID,uploadimage)值('”。$ last。“','”。$ filename。“')”)); //插入記錄表2(上傳) } } } } ?>