我想学习使用ZF中的相关表格到底。 (1)任何人都可以帮忙吗? 有2个用户表和* users_openid *,其中包含许多链接。我想在Zend_Db的表之间实现一个关系,这样这些用户就可以在Drugs上使用openid来获取它,添加openid,openid来让用户通过findParentRow ...
手册是俄罗斯的帮助...但不是我无法处理它....(http://framework.zend.com/manual/en/zend.db.table.relationships.html
数据库的结构:
-
- Table structure `users`
-
CREATE TABLE IF NOT EXISTS `users` (
`Id` int (11) UNSIGNED NOT NULL AUTO_INCREMENT,
`Nickname` varchar (200) NOT NULL,
`Email` varchar (200) NOT NULL DEFAULT'',
`Active` tinyint (1) NOT NULL DEFAULT '0 ',
`Enabled` tinyint (1) NOT NULL DEFAULT '0 ',
PRIMARY KEY (`id`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8 AUTO_INCREMENT = 1;
- ------------------------------------------------ --------
-
- Table structure `users_openid`
-
CREATE TABLE IF NOT EXISTS `users_openid` (
`User_id` int (11) UNSIGNED NOT NULL,
`Openid` varchar (200) NOT NULL,
PRIMARY KEY (`user_id`),
KEY `openid` (`openid`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
PS另一个小podvoprosik(2),你正在创建一个与MySQL(ubuntu)的连接,这个工具有phpmyadmin和mysql管理员,但是我还没有找到怎么做,但是不想写sql (
答案 0 :(得分:2)
要回答您的问题,如何创建与数据库的连接?
我知道如何使用Zend获得与数据库的连接。
zf
配置db-adapter,然后检索db资源 <?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 documentation on creating selects。您可以在模型中创建一个选择并加载数据。
YDACHI