PHP在包含文件中存储db查询如何?

时间:2010-10-08 20:06:41

标签: php include

我只是在学习PHP,而我正试图弄清楚如何将数据库查询存储在单独的文件中,作为类,方法或简单变量的一部分。

例如:我有一个如下所示的查询:

$checkuser = mysql_query("SELECT UserName, Email FROM users 
                            WHERE UserName = '$username4db' OR EMAIL = '$email4db'") 
             or die($checkuser_error);

我不想将其内嵌到文件中,而是将其移到中心位置,然后从那里使用它们。

我尝试使用包含文件并简单地调用变量,但它不起作用。

5 个答案:

答案 0 :(得分:1)

将查询存储在中心位置几乎没有意义IMO,因为它们将始终是程序逻辑的一部分,并且当您处理程序的流程时,您将需要查看它们(并更改它们)。

您可以将包含占位符的查询放在一起,然后使用sprintf()填写,但我真的不明白这一点。

答案 1 :(得分:1)

你应该看看MVC设计模式,整个目的是提供一种基于功能组织代码的简洁方法。

模型是数据库交互代码所在的位置。根据MVC实现,这有时是数据库表的直接表示,或者它可能是您自己编写的函数集合,用于处理手头的问题。

视图用于显示代码。作为一般规则,在编写视图时,只有HTML和基本PHP(回显变量,构建表的foreach循环)应该放在视图中。

控制器是程序逻辑的放置位置。从控制器中调用模型来进行构建数据所需的数据处理,然后将数据传递到视图中。

这是一个非常基本的解释,维基百科总是对这个主题有更多的评论:http://en.wikipedia.org/wiki/Model-view-controller

PHP中有许多MVC框架,您可以使用它们来构建网站。我使用并推荐CodeIgniter,因为它非常易于使用,并且在实现方面非常灵活。

答案 2 :(得分:0)

您可以将查询作为字符串存储在单独的文件中,然后在要使用查询时调用这些字符串变量。但是,我猜你的大多数查询都需要参数 - 在这种情况下你需要创建一系列函数(有或没有类)来用适当的变量构建查询。

答案 3 :(得分:0)

我发现“一个查询文件”范例非常有趣。我认为将查询保留在您想要获取数据的位置更有意义,因为这是您希望找到它的地方。相反,其他事情是将所有查询放在一个中心位置是个好主意,即使它达到5000行也可以随时返回。我不能说有正确的答案。

您可以为每个查询分配一个函数。只需要一个文件,其中包含您希望在函数中定义的所有查询。因此,当您想要从包含的文件中获取某些特定查询时,您只需运行get_random_data_query_uno()或者您拥有的内容。

答案 4 :(得分:0)

你的问题既有意义也有废话 您可以使用一些ORM将查询封装到某个类中。这是有道理的 但是存储原始查询是没有意义的。特别是你发布的表格。无论您是否需要此特定数据,所有查询都将无条件运行 至少将其封装在函数调用中

function checkuser($username4db, $email4db) {
  $sql = "SELECT UserName, Email FROM users WHERE UserName = %s OR EMAIL = %s";
  return db::getrow($sql, $username4db, $email4db); 
}
  • 在这种情况下,只有在调用checkuser()函数时才会运行查询。

但我仍然认为将所有网站查询存储在一个文件中没有任何意义。为什么不根据此查询所属的站点部分以逻辑方式存储它?