将MySQL代码和PHP代码放在不同文件中有什么好处?

时间:2013-11-21 14:15:35

标签: php mysql

我想知道将MySQL代码与PHP代码分开有什么好处。

目前我们的MySQL代码没有分开,我们仍在评估这是否是一件好事,优点/缺点是什么,或者它是否相同?

下面是一个简单的例子,可以帮助您理解我的意思。

PHP脚本(log.php):

require_once '../dbconnect.php';
require_once '../classes/database/db_log.php';

$dbActivitylog = new db_tblactivitylog;

$distinct_users = $dbActivitylog->distinct_users();

foreach($distinct_users as $user)
{
  echo '<span class="fancy_color">{$user}</span><br />";
}

MySQL代码=&gt; db_log.php:

class db_tblactivitylog
{
    // Return an array of distinct users in the activity log
    public  function    distinct_users()
    {
        $query = "SELECT DISTINCT user FROM log ORDER BY user ASC";
        $result = full_query($query);
        $distinct_users = array();
        while($data = mysql_fetch_array($result))
        {
            $distinct_users[] = $data['user'];
        }
        return $distinct_users;
    }

    // This function deletes $max_rows_to_delete rows in excess of the activitylimit in config, that match the where condition, keeping the newest rows
    public  function    truncate_rows($where, $max_rows_to_delete=9999)
    {
        global  $CONFIG;

        $max_rows_to_keep = $CONFIG['ActivityLimit'];
        $result = select_query( "log", "", $where, "id", "DESC", $max_rows_to_keep.",".$max_rows_to_delete);
        while($data = mysql_fetch_array($result))
        {
                    // delete query function, nothing unusual
            delete_query( "log", array( "id" => $data['id'] ) );
        }
    }
}

我们计划使用MySQLi,只是想知道分离代码是否有任何直接的好处,因为我们可以在途中这样做?

2 个答案:

答案 0 :(得分:2)

将数据库参数放在单独的文件中的一个直接好处是,通过这样做,您可以将它们放在不可公开访问的位置 - 例如在DocumentRoot文件夹上方。通过这样做,您可以大大提高数据库访问的安全性。

答案 1 :(得分:0)

  • 在单独的文件中使用db_connect,它变得无法访问 一般用户和这种方式,为登录凭据和其他敏感数据提供更好的安全性.....在这里阅读 用于清除您的查询 How to secure database passwords in PHP?
  • 另外,谈到安全问题,您正在使用提供的mysql_ 风险为sql_injection并已折旧....请使用mysqliPDO以提高安全性!

希望这会有所帮助!!