fetchdata.php - 发送所需的数据分离用户界面和数据库开发在PHP应用
function FetchItems()
{
while($Items = mysql_fetch_object("SELECT * FROM items")) //function is deprecated, would be changing it
{
$TotalItems[] = $Items;
}
return $TotalItems;
}
listitems.php - 用于用户界面和项目的列表显示给用户
require_once('fetchdata.php');
$Items = FetchItems();
echo '<table>';
foreach($Items as $ItemDetails)
{
echo '<tr>';
echo '<td>';
echo $ItemDetails->ItemName; // right now the UI developer requires the actual column names to display data but I don't want this
echo '</td>';
echo '<td>';
echo $ItemDetails->ItemQty;
echo '</td>';
echo '<td>';
echo $ItemDetails->ItemCost;
echo '</td>';
echo '</tr>';
}
echo '</table>';
我需要分开mysql开发和用户界面开发,以便在不同的人之间分配工作量。 UI开发人员不应要求实际的列名/表名/数据库名向用户显示数据。 但这些只会被后端开发者需要。
从一个开发者角度,如果万一我想改变我的表的列名一样,ItemQty到ItemAvailableQty那么我要问的UI开发人员编辑UIE文件即listItems中。 PHP的,但我想,只有后端文件是fetchdata.php应该编辑和UI文件不应该被触及这种数据库的变化。无论数据库中发生了哪些变化,这些更改都应独立于UI文件,UI文件不应该知道/需要这些后端更改,即更改对于UI文件是不可见的。 UI文件只有当且仅当有一些UI改变时才会被编辑。
我应该采取哪些措施来实现这个目标?我是否需要创建视图/存储过程等?或者我必须去MVC框架,如果是的话,那么如何?
首先,'mysql_ *'函数不再维护**,不应该用在任何新的代码库中。它正逐渐被淘汰,转而采用更新的API。相反,您应该使用[PDO](http://php.net/pdo)或[MySQLi]([**准备好的语句**])(https://www.youtube.com/watch?v=nLinqtCfhKY)( http://php.net/mysqli)。 –