IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Ajouter un enregistrement en PHP


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant coût global
    Inscrit en
    Juillet 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant coût global
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 101
    Par défaut Ajouter un enregistrement en PHP
    Bonjour et tous mes vœux pour la nouvelle année,

    Serveur : MySQL (127.0.0.1 via TCP/IP)
    Version du serveur : 5.7.23 - MySQL Community Server (GPL)
    Utilisateur : root@localhost

    Dans la base de données de mon site en WordPress, j'ai ajouté une table "lescopies" pour enregistrer des informations. Un extrait de la partie concernée du programme PHP est reproduite ci-dessous.
    Les lignes en rouge sont les impressions faites par la commande "echo" et les diagnostics d'erreur.
    En final, l'enregistrement semble être créé mais n'est pas ajouté à la base et je ne comprends pas pourquoi. Je ne sais pas non plus interpréter les Warning et les error.
    Merci à celles ou ceux qui pourront m'aider à identifier et/ou réparer le problème.

    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
    $base = mysqli_connect("127.0.0.1", "root", "", "bdcgrom");
    if ($base)
    	{
    	echo 'Connection réussie. Information sur le serveur: ' .mysqli_get_host_info($base),'<br>';
    
    Connection reussie. Information sur le serveur: 127.0.0.1 via TCP/IP
    
    	$reket1 = mysqli_query($base, 'SELECT * From lescopies');
    	if ($reket1 == FALSE) {
    		echo 'Echec de la lecture.<br />'; 	}
    	else {
    	echo 'Nombre de lignes : '.mysqli_num_rows($reket1).'<br />'; 	} 
    
    Nombre de lignes : 0
    
    //  Ajouter un enregistrement : $sql : chaîne de caractères contenant la requête SQL 
    	$sql = "INSERT INTO lescopies (nom,prenom, age) VALUES ('Dupond','Alain',72)";
    	echo $sql,'<br>';
    
    INSERT INTO lescopies (nom,prenom,age) VALUES ('Dupond','Alain',72)
    
    	$reket2 = mysqli_query($base, $sql);
    	if ($reket2 == False) {
    		echo 'Echec de l\'ajout d\'un enregistrement. '; }
    		echo 'erreur : '.mysqli_stmt_errno($reket2).' '.mysqli.stmt_error($reket2).'<br>';
    	else {
    		echo 'Ajout d\'un enregistrement. '; } 
    
    Echec de l'ajout d'un enregistrement.
    
    Warning: mysqli_stmt_errno() expects parameter 1 to be mysqli_stmt, bool given in C:\wamp64\www\cgrom\lesCasManu.php on line 91
    
    Warning: Use of undefined constant mysqli - assumed 'mysqli' (this will throw an Error in a future version of PHP) in C:\wamp64\www\cgrom\lesCasManu.php on line 91
    
    Fatal error: Uncaught Error: Call to undefined function stmt_error() in C:\wamp64\www\cgrom\lesCasManu.php on line 91
    
    Error: Call to undefined function stmt_error() in C:\wamp64\www\cgrom\lesCasManu.php on line 91

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 313
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 313
    Billets dans le blog
    17
    Par défaut
    Ton script est mal indenté et mal présenté. Cela n'aide pas à repérer les anomalies.
    Commence par le présenter correctement.

    Ici il y a peut-être un problème avec le 2nd echo qui se retrouve entre le if et le else :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	if ($reket2 == False) {
    		echo 'Echec de l\'ajout d\'un enregistrement. '; }
    		echo 'erreur : '.mysqli_stmt_errno($reket2).' '.mysqli.stmt_error($reket2).'<br>';
    	else {
    		echo 'Ajout d\'un enregistrement. '; }

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant coût global
    Inscrit en
    Juillet 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant coût global
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 101
    Par défaut Ajouter un enregistrement en PHP
    Voici un copier-coller d'une partie du script

    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
    $base = mysqli_connect("127.0.0.1", "root", "", "bdcgrisq");  //  "copicas"
    	if ($base)
    	{
    		echo 'Connection reussie. Information sur le serveur: ' .mysqli_get_host_info($base),'<br>';
    		$lannee = date('y');  // p 137
    		$lemois = date('m');
    		$lejour = date('d');
    		$lheure = date('H');
     
    		//  Nombre de lignes dans la table
    		$reket1 = mysqli_query($base, 'SELECT * From lescopies');
    		if ($reket1 == FALSE) {
    			echo 'Echec de la lecture.<br />'; 	}
    		else {
    			echo 'Nombre de lignes : '.mysqli_num_rows($reket1).'<br />'; 	} 
     
    		//  Ajouter un enregistrement	p320
    		// $sql : chaîne de caractères contenant la requête SQL 
    		$sql = "INSERT INTO lescopies (annee,mois,jour,heure,nom,cas1,cas2,cas3,cas4)
    		VALUES ($lannee,$lemois,$lejour,$lheure,'$lenom',$cas1,$cas2,$cas3,$cas4)";
    		echo $sql,'<br>';
     
    		$reket2 = mysqli_query($base, $sql);       //Exécution de la requête
    		if ($reket2 == False) {
    			echo 'Echec de l\'ajout d\'un enregistrement. '; 
    ligne 91			echo 'erreur : '.mysqli_stmt_errno($reket2).' '.mysqli.stmt_error($reket2).'<br>';}
    		else {
    			echo 'Ajout d\'un enregistrement. '; } 
     
    		// fermer éventuellement la base p 314
    		mysqli_close($base);
    		if (mysqli_close($base)) {
    			echo ' Déconnexion réussie.';  }
    		else {
    			echo ' Echec de la déconnexion.';  } 
    	}
    	else {
    		printf('Erreur %d : %s.<br />', mysqli_connect_errno(),mysqli_connect_error());
    	} 
    }
    Copie des affichages sur l'écran

    Connection reussie. Information sur le serveur: 127.0.0.1 via TCP/IP
    Nombre de lignes : 0
    INSERT INTO lescopies (annee,mois,jour,heure,nom,cas1,cas2,cas3,cas4) VALUES (23,01,14,15,'bibi',1,1,0,0)
    Echec de l'ajout d'un enregistrement.

    ( ! ) Warning: mysqli_stmt_errno() expects parameter 1 to be mysqli_stmt, bool given in C:\wamp64\www\cgrisq\lesCasManu.php on line 91
    Call Stack
    # Time Memory Function Location
    1 0.0015 370096 {main}( ) ...\lesCasManu.php:0
    2 0.0061 436720 mysqli_stmt_errno( $stmt = FALSE )
    ...\lesCasManu.php:91

    ( ! ) Warning: Use of undefined constant mysqli - assumed 'mysqli' (this will throw an Error in a future version of PHP) in C:\wamp64\www\cgrisq\lesCasManu.php on line 91
    Call Stack
    # Time Memory Function Location
    1 0.0015 370096 {main}( ) ...\lesCasManu.php:0

    ( ! ) Fatal error: Uncaught Error: Call to undefined function stmt_error() in C:\wamp64\www\cgrisq\lesCasManu.php on line 91
    ( ! ) Error: Call to undefined function stmt_error() in C:\wamp64\www\cgrisq\lesCasManu.php on line 91
    Call Stack
    # Time Memory Function Location
    1 0.0015 370096 {main}( ) ...\lesCasManu.php:0

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/10/2005, 19h13
  2. ajout d'enregistrement +
    Par jamesys dans le forum VB 6 et antérieur
    Réponses: 19
    Dernier message: 05/09/2005, 18h13
  3. ajouter un enregistrement en vba
    Par xtaze dans le forum Access
    Réponses: 4
    Dernier message: 13/06/2005, 20h30
  4. [MFC]CRecordset-Ajouter un enregistrement
    Par dum's dans le forum MFC
    Réponses: 1
    Dernier message: 01/06/2005, 14h20
  5. SQL et Access : ajouter plusieurs enregistrements
    Par Bernard M dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/04/2004, 21h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo