我想知道将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,只是想知道分离代码是否有任何直接的好处,因为我们可以在途中这样做?
答案 0 :(得分:2)
将数据库参数放在单独的文件中的一个直接好处是,通过这样做,您可以将它们放在不可公开访问的位置 - 例如在DocumentRoot文件夹上方。通过这样做,您可以大大提高数据库访问的安全性。
答案 1 :(得分:0)
db_connect
,它变得无法访问
一般用户和这种方式,为登录凭据和其他敏感数据提供更好的安全性.....在这里阅读
用于清除您的查询
How to secure database passwords in PHP? mysql_
风险为sql_injection
并已折旧....请使用mysqli
或PDO
以提高安全性!希望这会有所帮助!!