在PHP数组或MySQL数据库中存储文本?

时间:2012-08-12 17:29:09

标签: php mysql arrays query-optimization

假设我有50页,我想为其中约30页写一篇描述。

描述将在每页上有两个段落。

如果我将描述保存在MySQL数据库中,然后在每个页面上查询以查看是否有相应的描述,或者我将它们存储在最佳状态,那么我的服务器会更有效吗?我的PHP文件中的数组,看看该元素是否存在?

额外信息: 我会手动编辑数组文件或通过phpMyAdmin编辑数据库条目,这将花费相同的时间。此外,我只能编辑它们,所以我不必担心制作快速编辑文件。

3 个答案:

答案 0 :(得分:1)

这样做:

将它们存储在一个数组中,位于一个sepparate文件data.php中,格式如下:

<?php
return array(
  // here be data
);

在调用者脚本中,您可以像这样使用它:

$data = require 'data.php';

然后根据需要在整个站点中使用$ data变量。您还可以拆分数组并根据特定标准使用多个文件,例如“语言”或“文章类别”等等。

如果你这样做,你总是可以插入一个带有Web界面的编辑器来编辑该数组,然后将其存储回file_put_contents('data.php', '<?php return '. var_export($data));,其中$data在处理{POST后得到了它的值例如,{1}}形式是从$data的旧值生成的。

非常优雅,快速,可维护!

作为奖励,围绕这些序列化,反序列化等编写帮助函数,这样如果你改变主意(因为你的网站增长而你最终得到数百个这样的数组),你只需要重新实现这些函数使用数据库后端,而不接触其余的代码库

代码可重用性和可维护性达到顶峰!如果需要的话,你可以立即开始立即运行,而不会失去将来更好的前景。

答案 1 :(得分:0)

如果不经常更改这些说明,可以将它们存储在数组中。但最好将它们保存在单独的文件中,而不是将它们保存在一个PHP文件中。

但是你的服务器可以轻松处理那种小行。那么做对你来说很容易。

也许您可以将它们存储在数据库中以添加/编辑内容并对其进行缓存以便从您的页面中读取。

答案 2 :(得分:-1)

我会将信息存储在数据库中。它更慢但更优雅。 如果你想用数组做到这一点:

Class Page
{
    // global configuration
    private static $config = null;

    // individuel configuration
    public $title, $content;

    // constructor
    function __construct($page) {
        // get the configuration
        $config = self::getConfig();

        // cheack weather the page exists
        if(!isset($config[$page]))
            die('unknown page "'.$page.'"');

        // set some stuff
        $this->title = $config[$page]['title'];
        $this->content = $config[$page]['content'];
    }

    // get the configuration
    private function getConfig() {
        if(self::$config === null)
            self::$config = include(dirname(__FILE__) . '/config.php');
        return self::$config;
    }
}

配置:

return Array(
    'home' => Array(
        'title' => 'Welcome!',
        'content' => 'Welcome to my site!' /* maybe include some html for complxe stuff */
    )
);

示例:

$myPage = new Page('home');
echo $myPage->content;