使用PHP将行插入MySQL数据库有两种最显着的方法:
创建一个PHP文件,该文件使用循环来检测是否已提交isset($_POST['submit_button']
,如果表单尚未提交,则显示HTML表单。如果表单已提交,则在循环期间将数据插入MySQL表。
在page1.html
上创建HTML表单,并在提交表单时解析数据并插入page2.php
上的MySQL表。
这两种方法都可以完美地运行 - 但是,根据您自己的观点,这种方法比另一种方法更好(例如安全性,可维护性等......)?
答案 0 :(得分:4)
鉴于选择,我不会选择。相反,我会选择Post-Redirect-Get (PRG)模式,表单会通过该模式发布到仅处理输入的辅助页面,但不会自动生成输出。成功或不成功完成处理后,脚本将重定向到最终页面,该页面可能是显示消息,错误或请求重新提交的原始表单页面。
通常,会话变量将用于将信息传递回最终重定向点,无论这意味着来自$_POST
的值还是重新填充表单,还是成功/错误代码。
通过浏览器后退按钮解决意外重新提交的问题还有很长的路要走。
您发布到其他页面的第二种方法就像PRG的不完整形式。
答案 1 :(得分:0)
我可以说,从可用性的角度来看,我更喜欢第一种方法,因为它允许你创建粘性形式,即
<input id="foo" name="foo" value="<?php echo $_POST['foo']; ?>" />
答案 2 :(得分:0)
对于实际可行的情况,我会尝试完全放弃第二个用户页面加载。 page1.html
通过AJAX提交到通过page2.php
提供的网络服务。是的,有很多情况下这是不合适的,但我能想到的最常见的模式,表单处理程序只是将行插入数据库,非常适合于AJAX提交。