作者noxhsu (通りすがりの食いしん坊)
看板PHP
标题Re: [请益] array用POST传值
时间Sat Jun 7 11:32:47 2014
问题点在你的 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://webptt.com/cn.aspx?n=bbs/PHP/M.1402111970.A.7FD.html
※ 编辑: noxhsu (220.135.91.165), 06/07/2014 11:34:59
1F:→ MOONRAKER:还要依赖mysql的学习资料可以改用mysqli 但是最好是赶快 06/08 18:37
2F:→ MOONRAKER:前进到pdo或其他现代的方法 06/08 18:37
3F:推 banjmin:现在可以用ActiveRecord 爽多了 06/08 19:08
4F:推 coilion9670:好的,会在研读相关文件~ 06/08 23:16