使用zendframework连接数据库

时间:2012-03-02 19:56:32

标签: php database zend-framework zend-db

我正在尝试使用zend框架创建我的owne函数以将数据添加到我的数据库。但是我遇到了与数据库连接的问题。

PS:我不会在类Zend_Db_Table_Abstract中使用默认函数,我不会创建自己的函数来访问我的数据库。 我只想使用Zend_Db进行连接。

这是我的配置:

APPLICATION.INI:

database.adapter = PDO_MYSQL
database.params.host = localhost
database.params.username = root
database.params.password = ''
database.params.dbname = user

INDEX.PHP:

// Chargement automatique de Zend_Db_Adapter_Pdo_Mysql, et instanciation.

$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', 'production');

$db = Zend_Db::factory($config->database->adapter,array(
  'host'      => $config->database->params->host, 
  'username'  => $config->database->params->username,
  'password'  => $config->database->params->password,
  'dbname'    => $config->database->params->dbname,
    )
);

// placons la connexion dans un registre global à l'application
$registry = Zend_Registry::getInstance();
$registry->set('db', $db);

// en faire la connexion par defaut
Zend_Db_Table::setDefaultAdapter($db);
Zend_Registry::set('dbAdapter', $db);

我的功能是:

 public function SaveClient() {

   $sqlInsert = "INSERT INTO user VALUES ('".$this->getid()."','".$this->getprenom()."','".$this->getnom()."','".$this->getnele()."','".   $this->getville()."')";
     }

最后是行动:

 public function indexAction()
    {
       $user=new UserClass();
       $user->setid(2);
       $user->setnele(fevrier);
       $user->setnom(mhamdi);
       $user->setprenom(marwa);
       $user->setville(bizerte);

       $result=$user->SaveClient();

       $this->view->add_result =var_dump($result) ;
    }

2 个答案:

答案 0 :(得分:2)

您可以使用query()功能:

public function SaveClient() {

   $sqlInsert = "INSERT INTO user VALUES ('".$this->getid()."','".$this->getprenom()."','".$this->getnom()."','".$this->getnele()."','".   $this->getville()."')";
   $dbAdapter->query($sqlInsert);          
}

其中$dbAdapter是您的Zend_Db_Adapter_Abstract实例,(即您的$ config->数据库 - >适配器)... 但是这个功能(如你所见)不会返回任何东西。

但正如drew010所说,最好使用tabe data gateway模式..

答案 1 :(得分:0)

如果使用本机主键sql查询可能是这样的:

public function SaveClient() {

   $sqlInsert = "INSERT INTO user VALUES (null,'".$this->getprenom()."','".$this->getnom()."','".$this->getnele()."','".   $this->getville()."')";
   $dbAdapter->query($sqlInsert);          
}