【发布时间】:2016-01-15 19:27:00
【问题描述】:
我正在开发一个 joomla 组件来从 postgres 数据库中读取一些数据。 Joomla 安装在 mysql 上。 在我的模型中
protected function getListQuery()
{
$option = array(); //prevent problems
$option['driver'] = 'postgresql'; // Database driver name
$option['host'] = '192.168.1.0'; // Database host name:port number
$option['port'] = '1111';
$option['user'] = 'user'; // User for database authentication
$option['password'] = 'password'; // Password for database authentication
$option['database'] = 'PGDB'; // Database name
$option['prefix'] = ''; // Database prefix (may be empty)
$dbstock = JDatabaseDriver::getInstance( $option );
$query = $dbstock->getQuery(true);
$query->select('*')->from($dbstock->quoteName('myTable'));
return $query;
}
我从视图中得到错误,因为数据库服务器似乎不喜欢表名中的引号:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“myTable”LIMIT 20' 附近使用正确的语法 SQL=SELECT * FROM “myTable”LIMIT 20
我能做什么?
编辑
这到底是怎么回事??
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
class SLCatalogModelProducts extends JModelList
{
public function __construct($config = array())
{
parent::__construct($config);
$option = array(); //prevent problems
$option['driver'] = 'postgresql'; // Database driver name
$option['host'] = '192.168.1.1'; // Database host name:port number
$option['user'] = 'user'; // User for database authentication
$option['password'] = 'password'; // Password for database authentication
$option['database'] = 'PGSQL'; // Database name
$option['prefix'] = '';
$db = JDatabaseDriver::getInstance( $option );
parent::setDbo($db);
}
/**
* Method to build an SQL query to load the list data.
*
* @return string An SQL query
*/
protected function getListQuery()
{
$option = array(); //prevent problems
$option['driver'] = 'postgresql'; // Database driver name
$option['host'] = '192.168.1.1'; // Database host name:port number
$option['user'] = 'user'; // User for database authentication
$option['password'] = 'password'; // Password for database authentication
$option['database'] = 'PGSQL'; // Database name
$option['prefix'] = ''; // Database prefix (may be empty)
$dbstock = JDatabaseDriver::getInstance($option);
$query = $dbstock->getQuery(true);
$query->select('*')
->from('myTable');
return $query;
}
}
真的不喜欢这段代码......但它有效:-(
【问题讨论】:
标签: php postgresql joomla database-connection