上传文件代码和 mysql 代码应该存储在一个页面还是单独的页面中


Should uploading a file code and mysql code be stored in one page or seperate pages?

>我有一个脚本(insertvalues.php),所有MySQL编码都发生在其中(例如使用PHP查询和在数据库中插入值)。

我还想使用 PHP 上传文件。

我想知道的是:将文件上传的 PHP 代码存储在与 insertvalues.php 相同的页面中更好,表单正在导航到使用 AJAX,还是将文件上传代码放在单独的 PHP 页面中更好?

以下是我在插入值中的脚本.php

<?php
session_start();
$username="xxx";
$password="xxx";
$database="xxx";
mysql_connect('localhost',$username,$password);
mysql_select_db($database) or die( "Unable to select database");

$insertquestion = array();
    $imagequery = "SELECT ImageId FROM Image WHERE (ImageFile = '". mysql_real_escape_string($_POST['imageFile[]'])."')";
    $imagers = mysql_query($imagequery);
    $imagerecord = mysql_fetch_array($imagers);
    $imageid = $imagerecord['ImageId']; 
        $insertquestion[] = "'".
                    mysql_real_escape_string( $imageid ) ."'";
 $questionsql = "INSERT INTO Question (ImageId) 
    VALUES (" . implode('), (', $insertquestion) . ")";
    mysql_query($questionsql);
mysql_close()
?>

下面是我拥有的 AJAX,它成功地将帖子发布到插入值.php

     function submitform()
{
    var fieldvalue = $("#QandA").val();
    $.post("insertvalues.php", $("#QandA").serialize() ,function(data){
        var QandAO = document.getElementById("QandA");
        QandAO.submit();
    });  
    alert("Your Details for this Session has been submitted"); 
}

Ohlala...在我看来都不是。这两种方式似乎都很糟糕,尽管第二种(分离)可能不那么可怕。我强烈建议您研究应用程序结构和设计,即MVC模式。

当我经验不足时,我会将所有内容捆绑在一起,因为我认为遵循属于该页面上的操作的代码会更容易。 从那以后,我了解到,尽管它确实将事情保持在一起,但随着页面内容的增长(它总是如此),它很快就会变得不可读。

此外,我经常发现,一遍又一遍地管理可能相同方法的多个副本是一团糟,这意味着有时代码被放置在单独的 php 文件中并重用,而其他代码则不是。 随着时间的推移,很快就会发现,正在出现的模式是将所有内容模块化。 现在我倾向于有一个决定布局的文件。 该集成组件包含在文件夹中的其他 php 文件中。 如果这些子组件需要模块化,我会在包含文件夹中创建一个具有该组件名称的文件夹。 就这样继续下去。 这似乎很麻烦,但它确实是救命稻草。

然后,重用代码变得像移动文件夹一样简单。