Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用zendframework连接到数据库_Php_Database_Zend Framework_Zend Db - Fatal编程技术网

Php 使用zendframework连接到数据库

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

我正在尝试创建自己的函数,用zend框架将数据添加到数据库中。但是我在连接数据库时遇到了问题

PS:我不习惯使用Zend_Db_Table_抽象类中的默认函数,我不习惯创建自己的函数来访问我的数据库。 我只想用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) ;
    }

您可以使用
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”吗?