Lorsque je ne saisis rien dans le champ du formulaire, je souhaite que la base de données SQL indique 'NULL' dans le champ correspondant. Pour celà, j'ai paramétré la ligne de cette donnée à la valeur par défaut = 'NULL'. Malgré ça, c'est la valeur '0' qui est enregistrée.J'ai essayé plusieurs types de variables (text, number dans le formulaire et varchar, float dans la table). Rien n'y fait, Je joins le scripts de mon banc d'essai
Je joins d'abord le script du formulaire de saisie
Je joins ensuite le script PhpMySql de transfert vers la bdd
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> </head> <article class="sous_centrale4"id="sous_centrale4"> <?php // Rapport d'erreurs activé: ini_set('display_errors',1); error_reporting(E_ALL); ?> <table> <form action="testFloatval.php" method="post"> <tr> <th><label for="variable">VARIABLE</label> :</th> <td><input type="text" name="variable" id="variable"/></td> </tr> <tr> <th><label for="variable">TYPE</label> :</th> <td><select type="text" name="type" id="type"/> <option value="Text">Text</option> <option value="NumberFloat">NumberFloat</option> <option value="NumberVarchar">NumberVarchar</option> </select></td> </tr> <th><label for="Envoyer"></label> </th> <td><input type="submit" value="ENREGISTRER" /></td> </form> </table> </article> </html>
Merci de toute suggestion. CaptainChistian
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <?php $variable1=$_POST['variable']; $variable2= floatval($variable1); echo '<p>VARIABLE 1 = '.$variable1.'</p>'; echo '<p>VARIABLE 2 = '.$variable2.'</p>'; ?> <?php // Connexion à la base de données try { $bdd = new PDO('mysql:host=localhost;dbname=varchar_float;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } // Rapport d'erreurs activé: ini_set('display_errors',1); error_reporting(E_ALL); $req=$bdd->prepare('INSERT INTO variableForeceeNull (variableText, variableNumberFloat, variableNumberVarchar) VALUES (:variableText, :variableNumberFloat, :variableNumberVarchar)'); $req->execute(array( 'variableText'=>$variable2, 'variableNumberFloat'=>$variable2, 'variableNumberVarchar'=>$variable2 )); ?>
Partager