我有一个PHP文件(我不能制作一个片段)。我需要将它连接到数据库,而不是以正常的方式进行操作,想知道我是否可以只包含已经具有数据库连接的某种头文件。
有没有人知道Modx文件结构中的这样一个文件?
答案 0 :(得分:2)
容易...
如果您打开主index.php
,则可以看到一些提示:
/* define this as true in another entry file, then include this file to simply access the API
* without executing the MODX request handler */
if (!defined('MODX_API_MODE')) {
define('MODX_API_MODE', false);
}
// ...
/* execute the request handler */
if (!MODX_API_MODE) {
$modx->handleRequest();
}
那就是说,如果你有一个原始的PHP文件,那么我们举个例子说:hello.php
<?php
define('MODX_API_MODE', true); // IMPORTANT!!!
require 'index.php'; // or give directory path, according to your need
// let's test it
$startPage = $modx->getObject('modResource', $modx->getOption('site_start', null, 1));
if (!$startPage) {
die('CRAP!');
}
$startPageArray = $startPage->toArray();
echo '<pre>';
print_r($startPageArray);
echo '</pre>';
die('WOOHOO');
不,你不必再次定义$modx
。
它在index.php
中使用相同的对象。
答案 1 :(得分:0)
如果在外部脚本中加载modx模块,你可以针对你的modx数据库运行任何操作[实际上你可以使用任何modx函数]
一旦实例化modx对象,它将处理所有数据库连接细节。这将适用于任何页面,而不仅仅是经理页面。
答案 2 :(得分:-1)
允许使用系统数据库配置进行数据库连接的唯一地方是管理器页面,但这需要更多的工作来编写插件来访问其类和函数。
如果您希望能够使用MODX功能建立连接,我建议至少出于安全原因使用它的xPDO来执行查询。
这样的设置将是:
define('MODX_CORE_PATH','/ path / to / revo / core /'); 定义( 'MODX_CONFIG_KEY', '配置'); require_once MODX_CORE_PATH。 '模式/镆铘/ modx.class.php';
$ host ='localhost'; $ username ='your_username'; $ password ='your_password'; $ dbname ='your_database'; $ port = 3306; $ charset ='utf-8';
$ dsn =“mysql:host = $ host; dbname = $ dbname; port = $ port; charset = $ charset”; $ xpdo = new xPDO($ dsn,$ username,$ password);