Page 1 sur 1

Problème ecriture dans bdd

Posté : 12 déc. 2007, 11:26
par naje83
Salut à tous

J'ai un problème d'écriture dans une bdd (mysql) existante depuis un bon moment !
Suite à un déménagement (chez un même hébergeur "online") tout ce passe en apparence impec mais la base reste inchangée...pas de nouvel enregistrement!
<?php
// variables
$bd= "le-verseau";
$MySQL_Host= "leverseau.le_verseau.net";
$MySQL_User= "le-verseau"; 
$MySQL_Passw= "*******";
echo $_POST["titre"];
echo "<br>";
echo $_POST["auteur"];
echo "<br>";
echo $_POST["editeur"];
//ajouter un enregistrement dans une table 
$connexion = mysql_pconnect("$MySQL_Host","$MySQL_User","$MySQL_Passw");
mysql_select_db($db,$connexion);
$requete = "REPLACE INTO livre(titre,auteur,editeur) VALUES ('$titre','$auteur','$editeur')";
$resultat = mysql_query($requete,$connexion);
echo "<hr>La requête $requete a été effectuée.\n";
echo "<br>";
?>	
Ce code fonctionnait bien auparavant mais plus rien à faire malgré le message suivant :

"La requête REPLACE INTO livre(titre,auteur,editeur) VALUES ('la divine matrice','gregg braden','ariane') a été effectuée."

Si quelqu'un peut venir à mon secours...

D'avance merci

Naje83

Posté : 12 déc. 2007, 11:32
par h0_noMan
Quels sont la(les) clef primaire(s) de ta table ?

Donne nous le schéma de ta table.

Edit : Au passage sors tes variables des chaines de caractères.
$connexion = mysql_pconnect($MySQL_Host,$MySQL_User,$MySQL_Passw); 

Posté : 12 déc. 2007, 11:45
par naje83
Merci de ta réponse, voici le schéma de la table :

Code : Tout sélectionner

-- phpMyAdmin SQL Dump -- version 2.10.0.2 -- http://www.phpmyadmin.net -- -- Serveur: Online -- Généré le : Mer 12 Décembre 2007 à 10:42 -- Version du serveur: 4.1.11 -- Version de PHP: 4.3.10-19 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Base de données: `le-verseau` -- -- -------------------------------------------------------- -- -- Structure de la table `livre` -- CREATE TABLE `livre` ( `titre` varchar(50) character set utf8 collate utf8_bin NOT NULL default '', `auteur` varchar(30) character set utf8 collate utf8_bin NOT NULL default '', `editeur` varchar(25) character set utf8 collate utf8_bin NOT NULL default '', KEY `titre` (`titre`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
@+

Naje83

J'ai trouvé !!

Il faut mettre :

$requete = "INSERT INTO `le-verseau`.`livre` (`titre` ,`auteur` ,`editeur` )VALUES ('$titre','$auteur','$editeur')";

Posté : 12 déc. 2007, 17:41
par h0_noMan
REPLACE et INSERT sont 2 type de requètes différentes.

Que souhaite tu faire ?
1. Ajouter
2. Ajouter si l'enregistrement n'existe pas avant & Editer si il existe

Posté : 12 déc. 2007, 17:48
par naje83
Juste ajouter un enregistrement et comme je l'ai marqué dans mon post précèdent cela fonctionne !
Et cela me suffit amplement.
Merci encore pour tes conseils et ton temps.

@+

Naje83