- 1
[Opened] Erreur sur un insert
Posted by Yadutaf on 03/19/2011 07:58
Bonjour à tous,
J'ai un message d'erreur sur un insert que j'ai un peu de mal à interpréter. Néanmoins, l'insertion se fait correctement. Voici le message d'erreur :
[[notice 8]] Undefined property: cDaoRecord_commons_Jx_product_Jx_mysql::$pan_id /srv/htdocs/jpdv/temp/pdv2/compiled/daos/modules/vendeur~panier~mysql.php 315 [[notice 8]] Undefined property: cDaoRecord_commons_Jx_product_Jx_mysql::$pan_id /srv/htdocs/jpdv/temp/pdv2/compiled/daos/modules/vendeur~panier~mysql.php 331
Le dao a été créé en ligne de commande :
<datasources> <code> <primarytable name="panier" realname="p_panier_pan" primarykey="pan_id" /></datasources> <record>
<property name="pan_id" fieldname="pan_id" datatype="int" autoincrement="true"/> ...</record></code>
Voici les lignes concernées dans le fichier compilé du dao :
314 public function insert ($record){ 315 if($record->pan_id > 0 ){ ... ... 331 if($record->pan_id < 1 ) ... ... 334 }
Un dump sur $record->pan_id fait avant l'insert retourne bien "NULL", ce qui me semble normal.
Pour contrer cette erreur j'ai donc introduit
$record->pan_id = 0;
juste avant l'insert et ça passe.
Je n'ai pas ce problème sur les autres insert de l'application.
[Opened] Erreur sur un insert
Posted by foxmask on 03/19/2011 11:07
bonjour,
ce n'est qu'une "notice" donc ça explique que ça marche pour la suite
as-tu essayé de purger le cache ?
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] Re: Erreur sur un insert
Posted by Yadutaf on 03/19/2011 14:36
Exact. C'est une notice. J'ai bien purgé le cache mais cela ne change guère.
Ce que je ne m'explique pas, c'est pourquoi j'ai ce message avec ce dao mais pas avec les autres dao du même module. Ce n'est pas très gênant mais j'aimerais bien comprendre, d'autant plus que ce n'est pas très propre de donner une valeur 0 à l'identifiant pour qu'il s'auto-incrémente.
[Opened] Erreur sur un insert
Posted by foxmask on 03/19/2011 23:18
plutot que
<property name="pan_id" fieldname="pan_id" datatype="int" autoincrement="true"/>
mets
<property name="pan_id" fieldname="pan_id" datatype="autoincrement"/>
en effet ; dans ton cas autoincrement=tue
est ignore et datetype="int"
prend le pas mais lui attendait une valeur par defaut.
@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !
[Opened] Erreur sur un insert
Posted by laurentj on 03/22/2011 09:51
dans ton cas autoincrement=tue est ignore et datetype="int" prend le pas mais lui attendait une valeur par defaut.
comment ça ? C'est quelque part dans le code ?
Ces deux choses sont normalement équivalentes dans jelix 1.2 :
<code> <property datatype="autoincrement" /> <property datatype="int" autoincrement="true" /></code>
D'ailleurs le type "autoincrement" est plus ou moins obsolete maintenant.
[Opened] Erreur sur un insert
Posted by laurentj on 03/22/2011 10:07
@yadutaf : quelle version de php, de jelix ?
[Opened] Erreur sur un insert
Posted by Yadutaf on 03/22/2011 13:46
@foxmask : Merci. J'avais déjà essayé par acquis de conscience.
Bonjour Laurent,
PHP : 5.3.2-1 Jelix : 1.2
[Opened] Erreur sur un insert
Posted by Yadutaf on 03/24/2011 19:12
Voilà que j'ai le même problème sur un autre DAO, créé à la main cette fois-ci.
- 1