0

我在 ModX 中有两个片段:第一个(DBData):

    <?php
// login.php
$db_hostname = 'localhost';
$db_database = 'my_db';
$db_username = 'myusername';
$db_password = 'mypass';

第二:

    <?php
require_once '[[DBData]]';
$db_server = mysql_connect($db_hostname, $db_username, $db_password);
if (!$db_server) die("Unable to connect to MySQL: " . mysql_error());
mysql_select_db($db_database)
    or die("Unable to select database: " . mysql_error());

当我尝试像这样将它们插入我的页面时: [[DBData]] [[DBConnect]] 什么都没有发生,我怎样才能将 DBData“插入”到 DBConnect?谢谢

4

2 回答 2

0

您可以使用modx API runSnippet在另一个片段中运行一个片段。

进一步研究您的问题,您似乎想使用第 2 部分中第一个片段中设置的登录详细信息。您可以通过在第一个片段中设置占位符然后在第二个片段中使用它们来做到这一点,如下所示在您的第一个片段中

$modx->setPlaceholder('host-name', 'localhost')

然后检索第二个片段中的值

$modx->getPlaceholder('host-name')
于 2011-03-25T09:10:13.803 回答
0

我建议使用已经拥有的数据库 MODx,您可以使用类似于我不想进入 xPDO 业务的语法:

<?php
$rows = array();
$result = $modx->query("SELECT * FROM `xyz`");
if ($result) {
    while ($row = $result->fetch(PDO_FETCH_ASSOC)) {
        array_push($rows, $row);
    }
}

如果您真的想使用自己的连接,也许最好将您自己的系统设置与数据库凭据(可能没有密码)一起存储在 MODx 配置中,而不是通过以下方式在代码段中获取它们:

$mySetting = $modx->getOption('your_setting_key');

要创建自己的系统设置 enries,请参阅http://rtfm.modx.com/revolution/2.x/administering-your-site/settings/system-settings/

于 2014-09-16T20:56:44.547 回答