如何使用zen cart在自定义脚本中对db进行查询?

时间:2012-06-08 22:56:01

标签: php mysql zen-cart

嗨我有一个自定义脚本,我用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; 
}  

2 个答案:

答案 0 :(得分:3)

我可能会给你一个答案,不过我承认这不是最佳设置,因为它需要将自定义文件放入根目录。

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

require('includes/application_top.php');

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

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

我希望这有帮助!

编辑:原本以为你在谈论管理员定制。我把它改写成与公众方面有关。如果您需要扩展管理控制台,这也可以从管理员端进行。

答案 1 :(得分:0)

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