Problème script PHP avec INSERT
Résolu
Vicc69
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Vicc69 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Vicc69 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour, cela fait 3 jours que je planche sur un script permettant d'insérer des données dans la BDD, en vue d'en faire une fonction.. Sauf qu'aucune donnée ne s'insère dans ma table ! Pouvez-vous m'aidez svp ? Voici mon script :
/ Connexion à la BDD
try
{
$bdd = new PDO('mysql:host=localhost;dbname=ju', '', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
// Déclaration des variables
$table = 'client';
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
/* STRUCTURE DES CHAMPS POUR LA REQUETE INSERT
---------------------------------------------- */
$Fields = array();
// Récuperer les noms des champs d'une table
$req1 = $bdd->prepare('SELECT column_name FROM information_schema.columns WHERE table_name= ?');
$req1->execute(array($table));
while($data = $req1->fetch()) {
$Fields[] = $data['column_name'];
}
$req1->closeCursor();
// Transformer $Fields en chaîne de caractère dont les éléments sont séparés par une virgule
$fields = implode(",", $Fields);
/* STRUCTURE DES VALEURS POUR LA REQUETE INSERT
----------------------------------------------- */
$Values = array();
// Récuperer le nombre de champs d'une table
$req2 = $bdd->prepare('SELECT count(*) as nbr FROM information_schema.COLUMNS WHERE table_name= ?');
$req2->execute(array($table));
$data = $req2->fetch();
$req2->closeCursor();
$nbrFields = $data['nbr'];
// Ajouter ':' devant chaque champ
for ($i = 0; $i < $nbrFields; $i++)
{
$Values[] = ':'.$Fields[$i];
}
// Transformer $Values en chaîne de caractères dont les éléments sont séparés par une virgule
$values = implode(",", $Values);
/* STRUCTURE DU TABLEAU POUR LA REQUETE INSERT
---------------------------------------------- */
$Data = array ($prenom, $nom);
$Array = array();
$i = '';
$j = '';
// Ajouter '""' entre chaque champs
for ($i = 0, $j = 0; $i < $nbrFields && $j < $nbrFields; $i++, $j++)
{
$Array[$Fields[$i]] = $Data[$j];
}
// Insertion dans la BDD
$req3 = $bdd->prepare('"INSERT INTO'.$table.'('.$fields.') VALUES('.$values.')"');
$req3->execute($Array);
if($req3)
{
echo 'INSERT OK';
}
else
{
echo 'ERREUR';
}
/ Connexion à la BDD
try
{
$bdd = new PDO('mysql:host=localhost;dbname=ju', '', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
// Déclaration des variables
$table = 'client';
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
/* STRUCTURE DES CHAMPS POUR LA REQUETE INSERT
---------------------------------------------- */
$Fields = array();
// Récuperer les noms des champs d'une table
$req1 = $bdd->prepare('SELECT column_name FROM information_schema.columns WHERE table_name= ?');
$req1->execute(array($table));
while($data = $req1->fetch()) {
$Fields[] = $data['column_name'];
}
$req1->closeCursor();
// Transformer $Fields en chaîne de caractère dont les éléments sont séparés par une virgule
$fields = implode(",", $Fields);
/* STRUCTURE DES VALEURS POUR LA REQUETE INSERT
----------------------------------------------- */
$Values = array();
// Récuperer le nombre de champs d'une table
$req2 = $bdd->prepare('SELECT count(*) as nbr FROM information_schema.COLUMNS WHERE table_name= ?');
$req2->execute(array($table));
$data = $req2->fetch();
$req2->closeCursor();
$nbrFields = $data['nbr'];
// Ajouter ':' devant chaque champ
for ($i = 0; $i < $nbrFields; $i++)
{
$Values[] = ':'.$Fields[$i];
}
// Transformer $Values en chaîne de caractères dont les éléments sont séparés par une virgule
$values = implode(",", $Values);
/* STRUCTURE DU TABLEAU POUR LA REQUETE INSERT
---------------------------------------------- */
$Data = array ($prenom, $nom);
$Array = array();
$i = '';
$j = '';
// Ajouter '""' entre chaque champs
for ($i = 0, $j = 0; $i < $nbrFields && $j < $nbrFields; $i++, $j++)
{
$Array[$Fields[$i]] = $Data[$j];
}
// Insertion dans la BDD
$req3 = $bdd->prepare('"INSERT INTO'.$table.'('.$fields.') VALUES('.$values.')"');
$req3->execute($Array);
if($req3)
{
echo 'INSERT OK';
}
else
{
echo 'ERREUR';
}
A voir également:
- Problème script PHP avec INSERT
- Touche insert - Guide
- Script vidéo youtube - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mas script - Accueil - Windows
- Disk boot failure insert system disk and press enter - Guide
2 réponses
Salut,
A première vue la troisième requête n'est pas correcte :
Il y a une double quote au début et à la fin de la requête, est-ce normal ?
Il n'y a pas d'espace autour du nom de la table.
Je te conseil d'afficher ta requête pour vérifier si elle est bien construite comme ceci :
Bonne journée
A première vue la troisième requête n'est pas correcte :
$req3 = $bdd->prepare('"INSERT INTO'.$table.'('.$fields.') VALUES('.$values.')"');
Il y a une double quote au début et à la fin de la requête, est-ce normal ?
Il n'y a pas d'espace autour du nom de la table.
Je te conseil d'afficher ta requête pour vérifier si elle est bien construite comme ceci :
// Insertion dans la BDD
$sql3 = 'INSERT INTO '.$table.' ('.$fields.') VALUES ('.$values.')';
echo $sql3;
$req3 = $bdd->prepare($sql3);
$req3->execute();
Bonne journée