[PHP] pb de syntaxe suivant versions

Bonjour,
je débute avec PHP et Sql.
j'ai un formulaire de saisie de données, traité ensuite par PHP qui envoie des données dans une table MySQL.

- avec le serveur OVH : j'y suis arrivé
- avec mon serveur local : pas moyen d'insérer des données.
C'est sûrement une question de syntaxe différente.
J'y ai passé la journée, alors je sèche.
Voici le code du fichier PHP, qui fonctionne sur OVH :
Bien sûr, en local j'utilise le srv localhost, la base et la table installées.

<?
mysql_connect("srv","user","pwd")or die('Erreur de connexion a la base');
mysql_selectdb("base") or die ('erreur de selection de base');
$comment=stripslashes($comment);
$a ="INSERT INTO disques (albumtitre, albumartiste, albumannee, albumsupport, albumtype, albumediteur, comment, date) VALUES
('$albumtitre','$albumartiste','$albumannee','$albumsupport','$albumtype','$albumediteur','$comment', now())";
mysql_query($a) or die ('erreur insertion des données');
?>

J'ai essayé des " et/ou des ' et j'ai des msgs d'erreur undefined variable: dans mon fichier.php.

Mes configs :
1/ en local sous Win SRV2003 : MySQL - 4.1.9-max et PhpMyAdmin - 2.8.2.4 (Version du client MySQL: 3.23.49)

2/ chez OVH : MySQL - 4.0.25-standard-log
et
phpMyAdmin - OVH (Version du client MySQL : 5.0.18)

Merci d'aider un désespéré.
Configuration: 1/ en local sous Win SRV2003 : MySQL - 4.1.9-max et PhpMyAdmin - 2.8.2.4 (Version du client MySQL: 3.23.49)

2/ chez OVH : MySQL - 4.0.25-standard-log 
et    
phpMyAdmin - OVH
(Version du client MySQL : 5.0.18)

9 réponses

  1. Re,

    As tu fait un echo de $a ? Fais le et copie/colle la réponse ici.
    1. P.S : ça fonctionne toujours bien chez OVH !

      N'aurai-je pas des mises à jour à effectuer sur phpmyadmin ou mysql ?
      Je n'ai pas trouvé de maj.
      Merci.
      1. Salut,
        Rien à faire.
        J'ai trouvé un info peut-être intéressante dans le répertoire date de mysql; un fichier de log du srv :
        061005 18:29:58 InnoDB: Started; log sequence number 0 43634
        061005 18:29:58 [Warning] mysql.user table is not updated to new password format; Disabling new password usage until mysql_fix_privilege_tables is run
        061005 18:29:58 [Warning] Can't open and lock time zone table: La table 'mysql.time_zone_leap_second' n'existe pas trying to live without them
        E:\progs\EASYPH~1\MySql\bin\mysqld.exe: Prêt pour des connections Source distribution
        (j'ai copié les lignes d'aujourd'hui)
        InnoDB c'est quoi ?

        Re-re-re-merci d'un désespéré.
        1. ...et générer ta requete proprement:

          $a = "INSERT INTO disques (albumtitre, albumartiste, albumannee, albumsupport, albumtype, albumediteur, comment, date) VALUES
          ('".$albumtitre."', '".$albumartiste."', '".$albumannee."', '".$albumsupport."', '".$albumtype."', '".$albumediteur."', '".$comment."', now())";


          Fais ensuite un echo de $a, ce qui va afficher la requete, puis execute la dans phpMyAdmin. Ce sera plus facile à debugger.
          1. Slaut,
            j'ai essayé (sans oublié d'apostrophes) : il ne se passe rien du tout, même pas de message !

            Voici mon fichier corrigé :
            <?php
            mysql_connect("localhost","music","") or die ('Erreur de connexion a la base');
            mysql_selectdb("music") or die ('erreur de selection de base');
            $comment = stripslashes('$comment');
            $albumtitre = $_POST['albumtitre'];
            $albumartiste = $_POST['albumartiste'];
            $albumannee = $_POST['albumannee'];
            $albumsupport = $_POST['albumsupport'];
            $albumtype = $_POST['albumtype'];
            $albumediteur = $_POST['albumediteur'];
            $comment = $_POST['comment'];
            $a = "INSERT INTO disques (albumtitre, albumartiste, albumannee, albumsupport, albumtype, albumediteur, comment, date) VALUES
            ($albumtitre, $albumartiste, $albumannee, $albumsupport, $albumtype, $albumediteur, $comment, now())";
            mysql_query($a) or die ('erreur insertion des données');
            ?>
            1. Re,

              Parce qu'il faut récuperer tes variables proprement:

              $albumtitre = $_POST['albumtitre'];
              $albumartiste = $_POST[albumartiste'];
              etc...
              1. Salut,

                C'est avant l'insertion me semble-t-il ?
                J'ai encore fait des essais. Voici les derniers messages :

                Notice: Undefined variable: albumtitre in e:\progs\easyphp1-8\www\albums.php on line 6

                Notice: Undefined variable: albumartiste in e:\progs\easyphp1-8\www\albums.php on line 6

                Notice: Undefined variable: albumannee in e:\progs\easyphp1-8\www\albums.php on line 6

                Notice: Undefined variable: albumsupport in e:\progs\easyphp1-8\www\albums.php on line 6

                Notice: Undefined variable: albumtype in e:\progs\easyphp1-8\www\albums.php on line 6

                Notice: Undefined variable: albumediteur in e:\progs\easyphp1-8\www\albums.php on line 6
                erreur insertion des données

                Pouquoi ces variables sont-elles non définies ?
                J'ai tout vérifié plusieurs fois.

                Help, où je vais bientôt aller élever des escargots. Car ça doit être moins fatigant, vu qu'ils ne courent par vite.
                1. Ou se situe l'erreur ? Dans la conexion à la base ou dans l'insertion ?
                  1. L'utilisation des shorttags, c'est déconseillé.

                    register global est à on chez ovh ?
                    1. Bonjour,

                      register_globals est à off chez OVH.