1

嗨,我有一个自定义脚本,我用 ajax 调用它来检索一些数据库信息,但由于某种原因,它不允许我从这个文件进行调用。然而,当我将代码放在模板目录中的页面中时,可以说 tpl_products_all_default.php 他们运行良好。我需要做什么才能从自定义脚本运行查询?

$sql = "select products_model from products where products_model = :productMdel:"; 
$sql = $db->bindVars($sql, ':productMdel:', 'C021', 'string'); 
$result = $db->Execute($sql); 

if ($result->RecordCount() > 0) { 
  echo 'Model number = ' . $result->fields['products_model']; 
} else { 
  echo 'Sorry, no record found for product number ' . $theProductId; 
}  
4

2 回答 2

3

我可能会为您提供答案,但我承认这不是最佳设置,因为它需要将您的自定义文件放置到根目录中。

如果您的自定义文件被放置在根目录 (/your_custom_file.php) 中,您可以使用以下 require 语句执行以下操作以访问 $db:

require('includes/application_top.php');

这将初始化所有全局变量,并调用includes/initsystem.php,它将通过自动加载器中的值旋转并包含每个脚本。auto_loader 可以在 includes/auto_loaders/config.core.php 中查看。在 v1.5 中,您可以看到它最终包含第 81-82 行的 init_database.php 脚本。init_database.php 文件最终初始化 $db。

我最初遇到了与您相同的问题,并且几乎错过了此设置,因为我最初将自定义文件添加到 /my_module_extensions/my_file.php 之类的自定义目录中失败了。似乎 application_top.php 使用相对路径加载所有内容,因此在根目录以外的目录下执行时,它会失败。

我希望这有帮助!

编辑:最初以为您在谈论管理员自定义。我将其改写为与公共方面有关。如果您需要扩展管理控制台,这也适用于管理方面。

于 2012-06-22T02:31:19.910 回答
0

不正确,您可以在任何地方使用包含。如:require_once('inc/php/application_top.php'); 或 require_once(' http://example.com/inc/php/application_top.php ');

于 2018-02-17T22:07:24.757 回答