我正在尝试使用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) ;
}
答案 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);
}