php - SQL语句存储在单独的文件夹中

标签 php mysql security

<分区>

只是想从安全的角度来看,将我的 SQL 语句存储在像我的"file"文件夹这样的单独文件夹中并在我需要时调用它们是否好?还是这太麻烦了?

我在想也许可以将所有语句存储在一个文件中,但我希望能对此提供意见。

我的意思的一个例子。

require('files\selectriskrating.php'); 

在文件文件夹中我有一个 selectdetails.php

$query="SELECT `Riskrating` FROM `currentdetails` WHERE 1";

最佳答案

这是绝对安全的*。正如另一位评论者指出的那样,您不需要将其保存在您的网络根目录之外,因为服务器会将其评估为 php,并且永远不会将其回显给浏览器。

但是,这是一种非常麻烦的管理 SQL 的方法。您依赖于您的 include 始终没有错误,因为它总是使用正确的 SQL 语句分配 $query 的(大概)全局变量。您还在 SQL 本身周围添加了一个非常困惑的层,这将使其他人(甚至您将来)难以尝试阅读您的代码。

一种改进方法是将语句保存为文本文件。如果您想要实现的是关注点分离,那么只需将语句保存为文本文件,这样

SELECT `Riskrating` FROM `currentdetails` WHERE 1;

位于 files/myquery.sql 中。然后加载它

$query = file_get_contents('files/myquery.sql');

这样,您就可以消除一个潜在的错误来源,并且可以自动循环遍历所有查询并检查它们的正确性(例如,在单元测试中)。请注意,如果您这样做,您必须将查询保留在文档根目录之外,因为它们可以显示在浏览器中。

但是,更好的方法是使用 ORM,例如 RedBeanDoctrine .这样一来,您根本不必在数据库层上乱搞。

* 假设文件内容实际上是:

&lt;?php $query = "sql statement";

关于php - SQL语句存储在单独的文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21384463/

相关文章:

php - WooCommerce get_sku();产品变化顺序

javascript - 发布在 angularjs 中没有按预期工作

c# - 如何安全地使用 SecureString?

android - 我应该在哪里散列用户密码?

javascript - 在文本框中输入时提交 ajax 表单

PHP 正则表达式不工作 - 在本地服务器上返回 NULL,但在其他服务器上工作正常

sql - MySQL中 "ORDER BY"或 "WHERE"之后的字段和索引

php - 将内爆多重选择更新到数据库中

php - 如何在 WordPress 中设置 Widgetkit 插件的数据库?

c - 如何在没有第 3 方软件的情况下生成唯一的、非连续的序列 key ?