【问题标题】:Problem using php ODBC functions from within a Joomla article在 Joomla 文章中使用 php ODBC 函数时出现问题
【发布时间】:2010-09-14 18:35:35
【问题描述】:

我是 Joomla 的新手,也是 php 的新手(希望我也这么年轻)。我已经在本地 apache webserver 上安装了 joomla。我正在尝试在 joomla 文章中使用一些 php 代码,以便从 Sybase ASE 12.5 数据库中获取一些数据。我安装了sourcerer 并开始尝试使用系统 DSN 的 ODBC 连接(我验证它正在工作):

{source}
<?php
echo 'This text is placed through <b>PHP</b>!';
echo '<p>';
echo '</p>';

$conn = odbc_connect('myDSN', 'sa', 'myPassword') or die('Could not connect !');
echo 'Connected successfully';

$sql = 'SELECT day, name FROM my_table where month = 1';

odbc_close($conn);

?>
{/source}

上面的代码做的不多,但这是我能做到的没有问题的程度。我刷新了 joomla 页面,我在文章的正文中看到了:

...
This text is placed through PHP!

Connected successfully 
...

似乎没问题,显然已建立连接(我通过停止 sybase 服务并收到“无法连接”消息来验证这一点)。然后我又添加了一行,就在 $sql 赋值的下方。

$rs = odbc_exec($conn,$sql);

我刷新并...我看不到脚本中的任何内容(甚至没有 “此文本是通过 PHP 放置的!”)。 显然,如果我包含回显 $rs 内容的代码,我什么也看不到。我也试过这个,但没有成功。

if (!$rs)
{exit("Error in SQL");}

一旦我添加了odbc_exec 命令,整个脚本就会停止工作。 在 php.ini 我读到:

; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.

你知道出了什么问题吗?

  • 更新

使用代码like this 连接到 MySQL 数据库,就像一个魅力。

【问题讨论】:

  • 空白页通常表示致命错误,例如解析错误。使用脚本顶部的ini_set('display_errors', 1); 打开错误报告(或者,我认为 Joomla 有一个后端界面可以在全局配置>服务器选项卡中打开错误报告)。如果这是来自数据库的错误,您可以使用odbc_error()。尝试odbc_exec($conn,$sql) or die(odbc_error()); 看看是否产生了任何有用的信息。
  • 我没有得到一个空白页。我得到了文章的页面,就好像没有包含任何脚本一样!
  • @db047,此代码是插件/组件的一部分还是作为包装器包含的单独页面?无论如何,启用 error_reporting 并查看导致问题的原因...
  • 这是这个插件允许我插入到文章正文中的代码。请参阅此nonumber.nl/images/stories/extensions/sourcerer/…。无论如何,我尝试了上述但无济于事。我总是看到文章的其余部分没有任何错误,就好像根本没有 php 脚本一样。
  • 一般来说问题是:这是从另一个数据库获取数据到文章中的正确方法还是我应该使用一些插件来做到这一点?

标签: php windows apache joomla odbc


【解决方案1】:

回答你的问题

这是获取数据的正确方法吗 从另一个数据库到一篇文章 还是我应该使用一些插件来做 那个?

正确的方法是使用JDatabase对象,你通过JFactory::getDBO()JDatabase::getInstance()得到,见Joomla JDatabase documentation

$db = JDatabase::getInstance( $databasConfigArray );
$db->setQuery('your query');
$data = $db->loadObjectList();

Here is a good tutorial showing how to connect to multiple databases in Joomla,甚至还有辅助类的源代码。

也看看这个帖子Connecting to 3rd party databse in Joomla!?

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多