[請益] update file問題
<?php
// 判斷以及Sql Injecttion部份先略過
$a = $_POST['a'];
$b = $_FILES['file']['name'];
$sql = sprintf("UPDATE table SET a = %s, b = %s WHERE id = 1", $a, $b);
mysql_query($sql) or die(mysql_error());
?>
這是一般更新資料的語法
一般input的欄位如果資料沒修改,可以透過傳過來的舊資料update舊資料
但input file只會傳空值過來,也就是說update input file時沒傳東西又沒判斷的話該
欄位會被清空
目前有兩種方式
1. 直接在檔案欄位旁邊放input hidden,塞舊的檔案名稱
update時判斷如果有上傳新的檔案就update新檔案,沒有的話就update input hidden
優點:效能好
缺點:DOM外漏總是不好
2. 寫function呼叫出原始檔案名稱update
用function靠id調出原始檔案名稱,沒有上傳新檔案的話用他來update
優點:較安全
缺點:效能較差,如果有5個檔案就要query 5次
不知道有沒有更好得作法
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.36.21.208
推
11/17 14:15, , 1F
11/17 14:15, 1F
→
11/17 15:48, , 2F
11/17 15:48, 2F
→
11/17 18:03, , 3F
11/17 18:03, 3F
→
11/17 22:17, , 4F
11/17 22:17, 4F
→
11/17 22:18, , 5F
11/17 22:18, 5F
推
11/18 10:07, , 6F
11/18 10:07, 6F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章