Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php we bsite中加载和处理设置_Php_Mysql - Fatal编程技术网

在php we bsite中加载和处理设置

在php we bsite中加载和处理设置,php,mysql,Php,Mysql,如何加载和处理大量设置。在这里我可以启用和禁用选项。假设我在mysql中有一个名为php_settings的表,然后我有100个与网站相关的字段 我应该如何加载它们,然后将它们分配到数组()我想这是最基本的方法,然后在我的整个网站中使用这些设置。我不想在每次加载页面时都加载它们。因此?例如,每分钟运行一次cron,将这些变量放入指定的配置文件中 $result = mysql_query("SELECT * FROM php_settings"); while($one = mysql_fetc

如何加载和处理大量设置。在这里我可以启用和禁用选项。假设我在mysql中有一个名为php_settings的表,然后我有100个与网站相关的字段


我应该如何加载它们,然后将它们分配到数组()我想这是最基本的方法,然后在我的整个网站中使用这些设置。我不想在每次加载页面时都加载它们。因此?

例如,每分钟运行一次cron,将这些变量放入指定的配置文件中

$result = mysql_query("SELECT * FROM php_settings");
while($one = mysql_fetch_assoc($result)){
    $config[$one['name']] = $one['value'];
}

如果不需要所有设置,则不应一次加载所有设置。在一个数组中加载和使用几百个项不会对性能造成很大影响,但是如果您只需要两个或三个,为什么不在需要时查询它们呢?

如果您使用表进行设置,则可以使用oops概念,如下所示

创建一个包含以下内容的文件

class yourclassname
{

  public congif=array();
   function __construct(Settingarray[])
  {
    run your query here and select the appropriate fields and assign them to the class property linke following
     $this->congif='Your query result';
  }
}
 obj1=new yourclassname('array of setting fields you required on that page');
创建上面类的对象,如下所示

class yourclassname
{

  public congif=array();
   function __construct(Settingarray[])
  {
    run your query here and select the appropriate fields and assign them to the class property linke following
     $this->congif='Your query result';
  }
}
 obj1=new yourclassname('array of setting fields you required on that page');

}

web是无状态的-除非您想使用$\u会话变量来保存所有配置选项(我不建议使用它),否则您必须在每个页面上加载要使用的配置选项。。。在每一页上

就我个人而言,我会创建一个类似站点“ini”的php文件,其中包含一个app-config单例类,该类引导启动站点所需的一切,包括启动会话、连接到数据库以及加载任何配置设置(其中许多可能来自数据库)

那么,在任何新页面的顶部,你需要做的就是

require_once 'path/to/app.ini.php';
$oApp = App::getInstance();
然后,您可以通过$oApp->config('setting')之类的方式访问应用程序设置


要减少数据库上的负载,可以在数据库服务器上启用缓存(因为配置选项不太可能经常更改),或者从数据库中读取值,但不在那里使用它们,然后序列化响应并将其保存到文本文件(web树外)-然后仅在(缓存的)响应文本文件不存在或已过期;到文件系统而不是数据库服务器的瓶颈稍微少一些。

谢谢genesis。我认为你的答案是最坏的。看下面的用户是对的,我不可能一次加载所有这些设置。所以我想考虑一下每个页面的设置。每次加载页面时,我都必须加载它们。这比我得到的另一个选择要好。如果我使用PHP页面保存所有设置。我必须编辑页面。“我不可能一次加载所有设置。”->你可以,我只是想让你知道这根本不起作用,页面超时,我只想加载2个设置。很抱歉,我不知道cron是什么,而且我发现的样本太离谱了。我不得不转向别的事情。