dataobjects

Invité
Invité n'ayant pas de compte PHPfrance

08 janv. 2008, 14:37

Bonjour à tous,
j'utilise pear dataobjects pour insérer des infos dans une bdd à partir d'un formulaire ordinaire.
Le formulaire:
 <form name="addText" action="admin.php?page=addfields" id="addText" method="post">
	<input type="text" id="desc_1" name="desc_1"  class="input0" />	</td>
	<input type="hidden" id="maxid" name="maxid" value="<?php echo $maxid; ?>" />	</td>
	<input type="hidden" id="idtheme" name="idtheme" value="<?php echo $themes->id; ?>" />	</td>
	<input type="hidden" id="idsection" name="idsection" value="<?php echo $sections->id; ?>" />	</td>
	<input type="hidden" id="typeChamp" name="typeChamp" value="text" />	</td>
</form>

Et le code d'insertion dans la bdd:
$fields->id        = $maxid;
$fields->sectionid = $_REQUEST['idsection']; 
$fields->type      = $_REQUEST['typeChamp'];
$fields->desc      = $_REQUEST['desc_1']; 
Mon problème: toutes les valeurs venant d'un input hidden sont enregistrées, pas les valeurs venant du input text appelé "desc_1".
J'ai également testé les valeurs venant de select, checkbox et radio: pas de pb, ça marche.
Il n'y a que les input text dont la valeur n'est pas enregistrée.
Pourtant, un var_dump($_REQUEST) me montre que toutes les valeurs sont bien envoyées à la page d'enregistrement, y compris les valeurs de champ texte.

Voyez vous d'ou ça pourrait venir?
Merci pour vos réponses.

Invité
Invité n'ayant pas de compte PHPfrance

08 janv. 2008, 14:54

le debug mode me renvoie:
1064 ** Erreur de syntaxe près de 'desc , nomvar , oblig , ctrl , published ) VALUES ( 1 , 'text' ,' à la ligne 1
Il y a donc bien une erreur sur le input text nommé desc, mais je ne vois pas ce que ça peut être.
J'ai pensé à des guillemets qui peuvent générer ce type d'erreur, mais j'ai le même problème quand le input text ne continent qu'1 mot, sans caractères spéciaux ou de ponctuation.

Invité
Invité n'ayant pas de compte PHPfrance

08 janv. 2008, 15:01

voici l'erreur complète. Si je saisis 'test' dans mon input text nommé "desc_1", dont la valeur doit aller dans le champ "desc" de ma table, je reçois l'erreur:
INSERT INTO f_fields (desc ) VALUES ('test' ) [nativecode=1064 ** Erreur de syntaxe près de 'desc ) VALUES ('test' )' à la ligne 1]

Eléphant du PHP | 259 Messages

08 janv. 2008, 15:27

hello,

desc est un mot réservé de mysql. du coup pour mysql, ta requete veut plus dire grand chose...

tu as le choix, soit tu change le nom du champ (meilleure solution) ou sinon tu entoure le nom de champ avec des ` (<-- que je sais pas comment ca s'appelle :oops: )

dans ton cas en fait, je suis pas sur que tu ais vraiment le choix :)

bon courage !

ViPHP
ViPHP | 4039 Messages

08 janv. 2008, 15:32

un accent grave je dirais.. (petit lien)
accent grave (avec chasse) ` ` 96 (0x60) 96 (0x60) 96 (0x60) 96 (0x60) U+0060
Il s'agit bien du caractère 96 en ascii.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 259 Messages

08 janv. 2008, 15:38

** se sent con tout à coup

** hésite entre aller se cacher et se jeter dans un puits

:gla: