Проблема с использованием функций php ODBC из статьи Joomla - PullRequest
0 голосов
/ 14 сентября 2010

Я новичок в Joomla и новичок в php (жаль, что я тоже был таким новичком в возрасте).Я установил joomla на локальный веб-сервер apache .Я пытаюсь использовать некоторый php-код в статье для Joomla, чтобы получить некоторые данные из базы данных Sybase ASE 12.5.Я установил sourcerer и начал пробовать ODBC-соединение, используя системный DSN (который, как я убедился, работает):

{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 и получив " Не удалось подключиться * 1012"* сообщение).Затем я добавил еще одну строку, чуть ниже назначения $ 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.

У вас есть идеи, что происходит не так?

  • ОБНОВЛЕНИЕ

Подключение к базе данных MySQL с использованием кода , как этот , работает как чудо.

1 Ответ

1 голос
/ 15 сентября 2010

Чтобы ответить на ваш вопрос

Это правильный способ получения данных из другой базы данных в статью или я должен использовать какой-нибудь плагин, чтобы сделать что?

Правильный способ - использовать JDatabase объект, который вы получаете JFactory::getDBO() или JDatabase::getInstance(), см. Документация по Joomla JDatabase .

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

Вот хороший учебник, показывающий, как подключиться к нескольким базам данных в Joomla , есть даже исходный код для вспомогательного класса.

Также посмотрите на эту тему Подключение к сторонней базе данных в Joomla!?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...