PHP在MySQL中插入行 - 哪种方法更合适?

时间:2011-11-08 03:54:41

标签: php mysql database insert row

使用PHP将行插入MySQL数据库有两种最显着的方法:

  1. 创建一个PHP文件,该文件使用循环来检测是否已提交isset($_POST['submit_button'],如果表单尚未提交,则显示HTML表单。如果表单已提交,则在循环期间将数据插入MySQL表。

  2. page1.html上创建HTML表单,并在提交表单时解析数据并插入page2.php上的MySQL表。

  3. 这两种方法都可以完美地运行 - 但是,根据您自己的观点,这种方法比另一种方法更好(例如安全性,可维护性等......)?

3 个答案:

答案 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提交。