我有一个Sql数据库,其中包含一个表格:Email,Company,Name。当我对该数据库进行查询并比较电子邮件地址时,我也得到trim($row['company'])
& trim($row['name'])
以便公司和与该电子邮件地址相关联的人的姓名也被删除。
我的问题是:我使用的是基于trim($row['company'])
&与电子邮件地址关联的trim($row['name'])
。实施例
require_once "/var/www/vhosts/default/htdocs/" . trim($row['company']) . "/Users/" . trim($row['name']) . "/example.php";
因此,使用上面的示例,然后根据电子邮件将脚本指向位于目录中的example.php脚本,该脚本使用公司和从数据库获取的名称变量。
如果我有2封电子邮件说每个都来自同一家公司,那么修剪($ row ['company'])将保持不变,但这2封电子邮件分配给不同的用户,所以修剪($ row ['name' ])会有所不同。有没有办法当我使用require_once时,我可以在两个目录中同时执行example.php脚本?谢谢!
答案 0 :(得分:0)
请勿使用require_once,但只需要(或者如果感觉更好,则包括在内)。
答案 1 :(得分:0)
如果您没有正确转义,这看起来不安全,因为用户可能会输入任意字符并损害您的脚本。 (即导入另一个脚本,如输入名称“../ AnotherUser”)
但是,您可以使用glob枚举特定目录下的所有目录来包含特定公司的所有脚本:
foreach(glob("/var/www/vhosts/default/htdocs/" . trim($row['company']) . "/Users/*", GLOB_ONLYDIR) as $userDir) {
require_once($userDir."/example.php");
}
答案 2 :(得分:0)
为此,您需要从数据库中检索多于一行。所以你会得到一个数组数组作为你的结果。例如:
$result = array(
0 => array('email' => 'alex@abc.com', 'name' => 'Alex', 'company' => 'ABC'),
1 => array('email' => 'beth@xyz.com', 'name' => 'Beth', 'company' => 'XYZ')
);
一旦检索到这样的数据,就可以使用以下代码为每个数据运行脚本:
foreach ($result as $row)
{
require('/var/www/vhosts/default/htdocs/' . trim($row['company']) . '/Users/' . trim($row['name']) . '/example.php');
}
至于如何为数据库中依赖于您的数据库代码的所有电子邮件检索多行,这样我就无法在没有看到您使用的内容的情况下提供帮助。