23979
17511
我將輸入表單插入兩個不同的表中。第一個表用於信息,另一個表用於信息的圖像。
提交信息時,我想在單獨的表中的第一張表的每一行上載多張圖像,並且還將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?成功';

<?php
}
其他
{
?>
<腳本>
alert('上傳文件時出錯');
window.location.href ='index.php?fail';

<?php
}
}
如果($結果){
回顯“成功”;
迴聲“ 
”; 迴聲“ 返回主頁”; } 其他{ 回顯“ ERROR”; } if($ result1){ 回顯“上傳成功”; 迴聲“
”; 迴聲“ 返回主頁”; } 其他{ 回顯“ ERROR”; } } ?> <?php //關閉連接 mysql_close(); ?>
$ 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?成功';

<?php
}
其他
{
?>
<腳本>
alert('上傳文件時出錯');
window.location.href ='index.php?fail';

<?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(上傳)
}
}
}
}
?>