我将输入表单插入两个不同的表中。第一个表用于信息,另一个表用于信息的图像。 提交信息时,我想在单独的表中的第一张表的每一行上载多张图像,并且还将last_insert_id插入到第二张表中的每张图像中。 表格1 位置编号|地址|联系信息 表2 pictureID |位置编号|文件路径 使用以下代码,它只能插入一个图像,但是会将所有图像上传到文件夹中。 <?php include_once'dbconnect.php'; mysql_query(“ SET NAMES UTF8”); session_start(); $ tbl_name =“ location”; $ 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,网站)VALUES('$ name2','$ phone' ,“ $ 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']; if(move_uploaded_file($ file_loc,$ folder。$ final_file)) { $ sql =“ INSERT INTO $ tbl_image(user_ID,Location_ID,文件)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:11
$ 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']; if(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(上传) } } } } ?>