Php 使用zendframework连接到数据库
我正在尝试创建自己的函数,用zend框架将数据添加到数据库中。但是我在连接数据库时遇到了问题 PS:我不习惯使用Zend_Db_Table_抽象类中的默认函数,我不习惯创建自己的函数来访问我的数据库。 我只想用Zend_Db来连接 以下是我的配置: APPLICATION.INI:Php 使用zendframework连接到数据库,php,database,zend-framework,zend-db,Php,Database,Zend Framework,Zend Db,我正在尝试创建自己的函数,用zend框架将数据添加到数据库中。但是我在连接数据库时遇到了问题 PS:我不习惯使用Zend_Db_Table_抽象类中的默认函数,我不习惯创建自己的函数来访问我的数据库。 我只想用Zend_Db来连接 以下是我的配置: APPLICATION.INI: database.adapter = PDO_MYSQL database.params.host = localhost database.params.username = root database.param
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) ;
}
您可以使用
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_抽象实例(即$config->database->Adapter)。。。
但是这个函数(如您所见)不会返回任何内容
但正如drew010所说,最好使用
tabe数据网关
模式。如果使用本机主键,sql查询可能是这样的:
public function SaveClient() {
$sqlInsert = "INSERT INTO user VALUES (null,'".$this->getprenom()."','".$this->getnom()."','".$this->getnele()."','". $this->getville()."')";
$dbAdapter->query($sqlInsert);
}
连接有什么问题?您是否收到异常或特定错误?您还非常接近于使用
表数据网关
和行数据网关模式,而不实际使用它们。请参阅Zend_Db_表,了解更好的插入方法。如果您没有,您可能想检查。不,我没有得到错误,但我无法将信息插入数据库,因此可能是由于连接,因为查询是正确的。我肯定我不明白,但为什么工厂连接在index.php中,而不在引导中?在application.ini中,db参数不应该是“resources.db”而不是“database”吗?