Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-05-2009 09:50:44

enligne
Nouveau membre
Date d'inscription: 18-05-2009
Messages: 3

[Zend Db][1.8] erreur INSERT simple

Bonjour,

Je précise que je débute en poo et avec Zend Framework.

J'aimerai commencer à utiliser certain composant du ZF tel que Zend_Db.

Pour mes essais j'aimerai faire un insert, voici mon début de code qui ne marche pas encore :

Code:

<?php       

require_once("Zend/Db.php"); 

$params = array ('localhost'=> '127.0.0.1',
                 'username' => 'xxx',
                 'password' => 'xxx',
                 'dbname'   => 'xxx');

$db = Zend_Db::factory('PDO_MYSQL', $params);

$action_db = new Zend_Db;

// add new user in db table users
$rows = array(
    'id'                => '',
    'id_secure'         => $this->input_value[id_secure],
    'email'             => $this->input_value[email],
    'password'          => $this->input_value[password],
    'date_created'      => $this->input_value[date_created],
    'date_expired'      => $this->input_value[date_expired],
    'date_last_access'  => $this->input_value[date_last_access],
    'id_language'       => $this->input_value[id_language],
    'id_permission'     => $this->input_value[id_permission],
    'account_status'    => $this->input_value[account_status]
);

$table = 'users';

$action_db->insert($table, $rows); 

?>

le message d'erreur est le suivant : Fatal error: Using $this when not in object context in ...

Si quelqu'un peut m'éclairer un peu ou me renvoyer vers un tuto svp ?

Dernière modification par enligne (22-05-2009 09:54:58)

Hors ligne

 

#2 22-05-2009 11:05:34

Intiilapa
Membre
Date d'inscription: 03-02-2009
Messages: 95

Re: [Zend Db][1.8] erreur INSERT simple

Bonjour,
tu crées une connexion à une base avec la variable $db et tu demandes à faire une requête avec une variable $action_db qui est une connexion vide sans aucun paramètre.

Il suffit de remplacer
$action_db->insert($table, $rows);
par
$db->insert($table, $rows);

En outre, tu peux retirer la ligne pour l'id si tu ne précises pas de valeur.

Hors ligne

 

#3 22-05-2009 11:27:03

enligne
Nouveau membre
Date d'inscription: 18-05-2009
Messages: 3

Re: [Zend Db][1.8] erreur INSERT simple

J'ai corrigé mon code mais toujours le même message d'erreur : Fatal error: Using $this when not in object context in ...

le code :

Code:

<?php       
require_once("Zend/Db.php"); 

$params = array ('localhost'=> '127.0.0.1',
                 'username' => 'xxx',
                 'password' => 'xxx',
                 'dbname'   => 'xxx');

$db = Zend_Db::factory('PDO_MYSQL', $params);

$db = new Zend_Db;

// add new user in db table users
$rows = array(
    'id_secure'         => $this->input_value[id_secure],
    'email'             => $this->input_value[email],
    'password'          => $this->input_value[password],
    'date_created'      => $this->input_value[date_created],
    'date_expired'      => $this->input_value[date_expired],
    'date_last_access'  => $this->input_value[date_last_access],
    'id_language'       => $this->input_value[id_language],
    'id_permission'     => $this->input_value[id_permission],
    'account_status'    => $this->input_value[account_status]
);

$table = 'users';

$db->insert($table, $rows); 

?>

Hors ligne

 

#4 22-05-2009 11:41:46

Intiilapa
Membre
Date d'inscription: 03-02-2009
Messages: 95

Re: [Zend Db][1.8] erreur INSERT simple

Tout ton code est à reprendre en fait, il n'y a rien qui va ou presque ^^' Tu devrais peut-être chercher des tutoriaux pour comprendre le php dans un premier temps.

Tu définis un objet puis tu l'écrases par un objet vide, quel intérêt ? Supprime la ligne "$db = new Zend_Db;
".
Ensuite, tu n'es pas dans une classe, donc $this ne correspond à rien du tout ici. $this est une variable qui désigne l'instance de la classe courante à l'intérieure d'une méthode de la dite classe. Remplace toutes tes variables $this->input_value[xxx] par des chaînes de caractères.

Code:

$rows = array(
    'id_secure'         => 1,
    'email'             => 'xxx@xxx.fr',
    'password'          => 'abcdef',
);

Hors ligne

 

#5 22-05-2009 12:11:48

enligne
Nouveau membre
Date d'inscription: 18-05-2009
Messages: 3

Re: [Zend Db][1.8] erreur INSERT simple

Merci pour ton aide, voici finalement le code qui fonctionne wink

Code:

<?php
// INCLUDES    
require_once("../includes/config/config_path.php"); // pour définir le path vers la library zend
require_once("Zend/Db.php");
require_once("../includes/config/config_db.php");

$db = Zend_Db::factory('PDO_MYSQL', $params); //$params est dans config_db.php

    // add new user in db table users
    $rows = array(
        'email'             => 'my@mail.com',
        'password'          => 'my_password'
    );

    $table = 'users';

$db->insert($table, $rows); 
?>

Dernière modification par enligne (22-05-2009 13:13:15)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages