Pb d'insert simple

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pb d'insert simple

sructure de la table

par Willman » 12 juin 2005, 23:09

Voici la structure de la table, mais je ne pense pas que ce soit lié à la table car j'ai le même phénomène sur d'autres tables. Je pense plus à un pb de configuration .

Code : Tout sélectionner

-- -- Structure de la table `tabletest` -- CREATE TABLE `tabletest` ( `ClePrim` int(16) NOT NULL auto_increment, `Champ1` tinyint(4) default NULL, PRIMARY KEY (`ClePrim`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=107 ;

par smarties » 12 juin 2005, 11:05

Le seul problème viendra peut être de celui qui va maintenir ton code par contre
Pour éviter ce problème, je met des noms explicites et je commente les passages complexes dans mon code comme ca, meme apres 6 mois je peux me remettre a travailler sans trop réfléchir :D :lol: LOL

par Cyrano » 12 juin 2005, 10:55

PHP détruit les variables à portée locale..
Justement, $_GET, $_POST, $_FILES, $_REQUEST etc sont des super-globales, pas des locales... :-k

par zeus » 12 juin 2005, 10:45

PHP détruit les variables à portée locale à la fin de l'exécution du script, donc, avec les configurations par défaut, au maximum 30 secondes...

par zeus » 12 juin 2005, 10:44

Si tu trouve plus lisible comme ça, libre a toi de faire comme tu veux

Le seul problème viendra peut être de celui qui va maintenir ton code par contre

Après, c'est sûr que chacun peut faire comme il veut mais je crois qu'il y plus de monde qui développe comme Cyrano et moi que comme toi, donc je pense que ça serait effectivement une bonne idée de l'enlever de ta signature. Mais que ca ne change pas ta manière de coder ppour autant

par Cyrano » 12 juin 2005, 10:42

Je crois surtout que la différence entre PHP et C/C++, c'est la destination des applications: Ton point est certainement à prendre en compte dans une application cliente et par exemple créer une application en PHP/GTK devrait probablement répondre à ce critère. Ça doit être une question de durée de vie d'une variable et comment PHP gère ça, j'avoue ne jamais m'être trop posé la question, la réponse nous éclairerait certainement davantage.

par smarties » 12 juin 2005, 10:38

Perso, je trouve qu'utiliser les $_GET/_POST/... est plus facile à comprendre. Tu sais toujours ce que sont tes variables.
En fait c'est une habitude que j'ai pris en c/c++ vu qu'il faut gérer la mémoire.
Enfin tout le monde me contredira la dessus donc je vais l'enlever de ma signature.

par Cyrano » 12 juin 2005, 10:35

C'est un peu aussi mon point de vue: et à ce compte là, tant qu'à faire la chasse au gaspi et éviter à fond le risque de créer une usine à gaz, on pourrait à ce cas pousser le vice jusqu'à faire ça:
$var1 = $_GET[var_1];
$var2 = $_GET[var_2];
unset($_GET);
echo var1."-".$var2;
Comme le souligne zeus, c'est une question de lisibilité de code. Sur le fond tu as raison, sur le coté pratique, c'est discutable.

par zeus » 12 juin 2005, 10:30

Tu sais smarties, avec la puissance des serveurs, la quantité de mémoire vive disponible basiquement, il vaut mieux ecrire
$var1 = $_GET[var_1];
$var2 = $_GET[var_2];
echo var1."-".$var2;
que
echo $_GET[var_1]."-".$GET[var_2];
le code n'en est que plus lisible

La période où on economisait jusqu'au noms des variables (réutilisation des variables) est terminée depuis qu'on a plus de 64Mo de RAM et des proco qui dépassent les 500Mhz

par smarties » 11 juin 2005, 21:53

PHP c'est programmer en C/C++, donc a chaque variable crées de la mémoire doit être alouée donc ca ralentit le traitement des informations, de plus ca doit être des pointeur qui sont utilisés. Enfin, si je suis motivé je regarderai les sources :lol:

par Cyrano » 11 juin 2005, 21:50

Optimiser la vitesse de vos scripts -> ne faites pas $var=$_GET['var']
Tu peux m'expliquer ce truc là smarties ??

par smarties » 11 juin 2005, 21:48

Je pense que tu as des guillements en trop, replace :

Code : Tout sélectionner

$SQL="insert into `TableTest` ( `Champ1`) values (2)";
Par :

Code : Tout sélectionner

$SQL="insert into TableTest (Champ1) VALUES (2)";

par Cyrano » 09 juin 2005, 22:51

Quand tu dis "pas systématiquement", ça veut dire que ça marche quelque fois quand même ???

Fais voir la structure de ta table.

par Willman » 09 juin 2005, 22:33

Ca ne change rien, toujours pas de message d'erreur et l'insertion ne marche toujours pas systématiquement.

par Cyrano » 08 juin 2005, 08:13

Il faut capturer le retour de l'exécution de la requête pour avoir un message d'erreur: en cas d'erreur, mysql_query() retourne FALSE, modifie donc ton script comme ceci:
if (!result)
{
    echo $sql_command."<br>\n".mysql_errno() . ": " . mysql_error(). "<br>\n";
}