Re: [請益] array用POST傳值

作者: noxhsu (通りすがりの食いしん坊)   2014-06-07 11:32:47
問題點在你的 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 一直撞壁有錯誤請鞭
作者: MOONRAKER (㊣牛鶴鰻毛人)   2014-06-08 18:37:00
還要依賴mysql的學習資料可以改用mysqli 但是最好是趕快前進到pdo或其他現代的方法
作者: banjmin (HD)   2014-06-08 19:08:00
現在可以用ActiveRecord 爽多了
作者: coilion9670 (QQ軟)   2014-06-08 23:16:00
好的,會在研讀相關文件~

Links booklink

Contact Us: admin [ a t ] ucptt.com