看板 PHP 關於我們 聯絡資訊
問題點在你的 10 是哪邊出來的? 先不考慮三個陣列是否同步問題,但是如果動態生成的欄位不足10或是多餘10的時候要怎 麼處理? 所以一般的做法是: $name = $_POST['name']; $name_count = count($name); for ($i = 0; $i < $name_count; $i++) { //... } 或是 $name = $_POST['name']; foreach ($name as $key => $val) { //... } 此外,現在在處理資料庫的query string也不再建議使用 mysql_real_escape_string 這類的處理方式,要不是使用PDO是往後的趨勢,要不然個人會建議使用php ADOdb 同樣的 INSERT: PDO: $query = "INSERT INTO `table` (`student_id`, `name`, `memo`) VALUES (?, ?, ?)"; $sth = $cn->prepare($query); $para = array( $student_id[$n], $name[$n], $memo[$n]); $sth->execute($para); ADOdb: $query = " INSERT INTO `table` (`student_id`, `name`, `memo`) VALUES (:id, :name, :memo) "; $para = array( 'id' => $student_id[$n], 'name' => $name[$n], 'memo' => $memo[$n]); $cn->execute($query, $para); 這樣的處理;這種處理方式在往後接觸node.js之類相關的工具時也會受益。 當然,這只是建議的學習方向,畢竟PHP-MySQL的參考資料比較多。 ※ 引述《coilion9670 (runrunder)》之銘言: : 原文恕刪 : 剛剛看了留言貼的文章 : 立馬寫了這一個"好閱讀"的mysql_real_escape_string方法練習看看 : 但似乎不如我預期 : for(n=0;n<10;n++){ : $sql= sprintf("insert into table (student_id, name, memo) : values ('%s', '%s', '%s')", : mysql_real_escape_string($student_id[$n]), : mysql_real_escape_string($name[$n]), : mysql_real_escape_string($memo[$n]) : ); : } : mysql_query($sql); : 我哪裡會錯意失敗了...QQ 一直撞壁有錯誤請鞭 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.91.165 ※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1402111970.A.7FD.html ※ 編輯: noxhsu (220.135.91.165), 06/07/2014 11:34:59
MOONRAKER:還要依賴mysql的學習資料可以改用mysqli 但是最好是趕快 06/08 18:37
MOONRAKER:前進到pdo或其他現代的方法 06/08 18:37
banjmin:現在可以用ActiveRecord 爽多了 06/08 19:08
coilion9670:好的,會在研讀相關文件~ 06/08 23:16