Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > PEAR > DB & MDB2
DB & MDB2 Forum d'entraide pour les bibliothèques DB et MDB2 du framework PEAR, permettant de manipuler les bases de données en PHP. Avant de poster -> tutoriels DB et MDB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/11/2007, 16h34   #1
Membre du Club
 
Inscription : juin 2004
Messages : 257
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 257
Points : 64
Points : 64
Par défaut [MDB2] insert et valeur NULL

Bonjour,

Je voudrais faire l'insertion d'une valeur NULL dans ma base de données mysql 5 avec la méthode autoexecute de PEAR

le requête a passer est
Citation:
INSERT INTO fournisseur ( Lib_Fourn, Date_Jour) VALUES (?, ?)
voila mon code
Code :
1
2
3
4
5
6
 
$table = 'user'
$field_value_ar = array('test',NULL);
$mdb->autoExecute($table, $field_value_ar,MDB2_AUTOQUERY_INSERT,$where,array('blob', 'clob'));
$field_value_ar2 = array('NULL','2003-01-01');
$mdb->autoExecute($table, $field_value_ar2,MDB2_AUTOQUERY_INSERT,$where,array('blob', 'clob'));
La structure de la table permet les valeurs nulls et a NULL par défaut.
Dans le premier cas, dans le champ date j'ai une cellule vide et dans le second, dans le champs lib_fourn j'ai NULL mais pris en chaine de caractère et non en valeur NULL.

Comment faire pour alimenter ma table avec de valeurs NULL?
merci de votre réponse
epeichette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 15h03   #2
Rédacteur
 
Homme
Geek entrepreneur
Inscription : novembre 2004
Messages : 1 035
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Geek entrepreneur

Informations forums :
Inscription : novembre 2004
Messages : 1 035
Points : 1 813
Points : 1 813
salut,

ça fait des lustres que je n'y ai pas touché mais par défaut j'aurais tout simplement tenté de ne pas renseigner les valeurs pour les colonnes NULL.
si je me réfère a la doc :

http://pear.php.net/manual/en/packag...intro-auto.php :

Code :
1
2
3
4
5
6
7
8
9
10
$fields_values = array(
    'id'      => 1,
    'name'    => 'Fabien',
    'country' => 'France'
);
$types = array('integer', 'text', 'text');
 
$mdb2->loadModule('Extended');
$affectedRows = $mdb2->extended->autoExecute($table_name, $fields_values,
                        MDB2_AUTOQUERY_INSERT, null, $types);
pour mettre country a NULL par exemple, j'aurais fait ça :

Code :
1
2
3
4
5
6
7
8
9
$fields_values = array(
    'id'      => 1,
    'name'    => 'Fabien'
);
$types = array('integer', 'text', 'text');
 
$mdb2->loadModule('Extended');
$affectedRows = $mdb2->extended->autoExecute($table_name, $fields_values,
                        MDB2_AUTOQUERY_INSERT, null, $types);
hugo123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2007, 17h58   #3
Membre du Club
 
Inscription : juin 2004
Messages : 257
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 257
Points : 64
Points : 64
Merci pour votre réponse en ligne. Par contre elle m'amène à une autre question...

dans votre réponse, vous déclarer le le type de chacun des champs de votre table dans $type.

En suivant votre tutoriel, j'ai déclarer $type = array('blob', 'clob')

je n'ai pas bien compris cet histoire de large objet. Est ce que la déclaration faites ainsi est correcte oou faut 'il a chacune des requêtes passer le tableau des types de colonne?

merci d'avance de l'attention que vous prêterez a cette nouvelle requête
epeichette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2007, 09h25   #4
Rédacteur
 
Homme
Geek entrepreneur
Inscription : novembre 2004
Messages : 1 035
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Geek entrepreneur

Informations forums :
Inscription : novembre 2004
Messages : 1 035
Points : 1 813
Points : 1 813
Les large object sont fait pour stocker de grande quantités de données, soit binaires (des images par exemple) dans des blob, soit des caractères dans des clob. Si c'est pour insérer un fournisseur et une date, je déconseille d'utiliser ce type de champ.
Pour ce qui est de la syntaxe ci dessous, il me semble effectivement que vous repassez les types de champ à chaque appel à autoexecute.
hugo123 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h54.


 
 
 
 
Partenaires

Hébergement Web