Чтобы ответить на ваш вопрос, Как создать соединение с базой данных?
Я знаю 2 способа, как установить соединение с базой данных с помощью Zend.
- Сконфигурировать db-адаптер с помощью
zf
и затем получение ресурса базы данных
<?php
// Initialize and retrieve DB resource
$bootstrap = $application->getBootstrap();
$bootstrap->bootstrap('db');
$dbAdapter = $bootstrap->getResource('db');
?>
<?php
// Get DB resource
// You can also use Zend_Db_Adapter_Pdo_Mysql
$db = Zend_Db::factory('PDO_MYSQL', array(
'host' => 'localhost',
'username' => 'user',
'password' => 'password',
'dbname' => 'database'
));
?>
В вашем SQL у вас нет никаких ссылок из одной таблицы в другую ... Я ссылка мнимая?В любом случае ...
<?php
class Users extends Zend_Db_Table_Abstract
{
protected $_name = 'users';
//
//protected $_dependentTables = array('UsersOpenids');
}
class UsersOpenids extends Zend_Db_Table_Abstract
{
protected $_name = 'users_openid';
protected $_referenceMap = array(
'User' => array(
'columns' => 'User_id',
'refTableClass' => 'Users',
'refColumns' => 'Id'
)
);
}
//
$openIdsTable = new UsersOpenids();
// Get only 1st Row
$openId = 'emails@gmail.com';
$openIdRow = $openIdsTable->fetchRow(array('Openid = ?' => $openId));
if ($openIdRow === null){
throw new Exception("OpenId is not found");
}else{
// Find parent row, will use current value of Zend_Db_Table_Row_Abstract
// Will get user who is associated with the open id
// $openIdRow->findParentRow($parentTable, $ruleKey, $select)
$user = $openIdRow->findParentRow('Users', 'User');
}
?>
В качестве альтернативы посмотрите Документация Zend по созданию селектов .Вы можете создать выбор в вашей модели и загрузить данные.
YDACHI