首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >include [[snippet]];

include [[snippet]];
EN

Stack Overflow用户
提问于 2011-03-25 15:42:13
回答 2查看 782关注 0票数 0

我在ModX中有两个代码片段: first (DBData):

代码语言:javascript
复制
    <?php
// login.php
$db_hostname = 'localhost';
$db_database = 'my_db';
$db_username = 'myusername';
$db_password = 'mypass';

第二:

代码语言:javascript
复制
    <?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?谢谢

EN

回答 2

Stack Overflow用户

发布于 2011-03-25 17:10:14

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

进一步研究您的问题,看起来您希望使用第2个代码片段中设置的登录详细信息。您可以在第一个代码段中设置占位符,然后在第二个代码段中使用它们,如下所示

代码语言:javascript
复制
$modx->setPlaceholder('host-name', 'localhost')

,然后检索第二个代码片段中的值。

代码语言:javascript
复制
$modx->getPlaceholder('host-name')
票数 0
EN

Stack Overflow用户

发布于 2014-09-17 04:56:45

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

代码语言:javascript
复制
<?php
$rows = array();
$result = $modx->query("SELECT * FROM `xyz`");
if ($result) {
    while ($row = $result->fetch(PDO_FETCH_ASSOC)) {
        array_push($rows, $row);
    }
}

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

代码语言:javascript
复制
$mySetting = $modx->getOption('your_setting_key');

有关创建自己的系统设置条目的信息,请参阅http://rtfm.modx.com/revolution/2.x/administering-your-site/settings/system-settings/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5429786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档