<?php
try
{ // connection à la base de données
// On se connecte à MySQL
$bdd = new PDO('mysql:host=172.16.0.11;dbname=tsti2d1', 'root', 'root');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage()); // En cas d'erreur, on affiche un message et on arrête tout
}
$id = intval($_GET['id']);
$eau_prise = $_GET['eau_prise'];
$insert=$bdd->prepare('INSERT INTO flowfontainev2(id,nom,prenom,eau_prise) VALUES(:id, :nom, :prenom, :eau_prise)');
$insert->execute(array(
'id' => $id,
'prenom'=>$reponse = $bdd->query('SELECT prenom FROM flowread WHERE id=\'' . $_GET['id'] . '\''),
'nom'=>$reponse = $bdd->query('SELECT nom FROM flowread WHERE id=\'' . $_GET['id'] . '\''),
'eau_prise' => $eau_prise
));
?>
Et l'erreur est :
( ! ) Catchable fatal error: Object of class PDOStatement could not be converted to string in C:\wamp64\www\TSTI2D1\Ganderatz\projet\add4.php on line 20
- Edité par FlorianGanderatz1 20 mars 2019 à 11:50:18
Pour le nom et prénom dans le execute ça me parais étrange. Je te conseillerais de soit faire la requête avant et de passer par des variables ou soit mettre directement :
'prenom'=>$bdd->query('SELECT prenom FROM flowread WHERE id=\'' . $_GET['id'] . '\'')
Regarde dans un premier temps si en mettant des valeurs fixe à Nom et Prénom ça marche
Oui les valeurs fixe fonctionne j'ai donc changé la parti concerné. même erreur
( ! ) Catchable fatal error: Object of class PDOStatement could not be converted to string in C:\wamp64\www\TSTI2D1\Ganderatz\projet\add4.php on line 20
<?php
try
{ // connection à la base de données
// On se connecte à MySQL
$bdd = new PDO('mysql:host=172.16.0.11;dbname=tsti2d1', 'root', 'root');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage()); // En cas d'erreur, on affiche un message et on arrête tout
}
$id = $_GET['id'];
$eau_prise = $_GET['eau_prise'];
$insert=$bdd->prepare('INSERT INTO flowfontainev2(id,nom,prenom,eau_prise) VALUES(:id, :nom, :prenom, :eau_prise)');
$insert->execute(array(
'id' => $id,
'prenom'=>$bdd->query('SELECT prenom FROM flowread WHERE id=\'' . $_GET['id'] . '\''),
'nom'=>$bdd->query('SELECT nom FROM flowread WHERE id=\'' . $_GET['id'] . '\''),
'eau_prise' => $eau_prise
));
?>
- Edité par FlorianGanderatz1 20 mars 2019 à 12:08:39
<?php
try
{ // connection à la base de données
// On se connecte à MySQL
$bdd = new PDO('mysql:host=172.16.0.11;dbname=tsti2d1', 'root', 'root');
$bdd -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage()); // En cas d'erreur, on affiche un message et on arrête tout
}
$id = intval($_GET['id']);
$eau_prise = $_GET['eau_prise'];
$insert=$bdd->prepare('INSERT INTO flowfontainev2(id,nom,prenom,eau_prise) VALUES(:id, :nom, :prenom, :eau_prise)');
$insert->execute(array(
'id' => $id,
'prenom'=>$req = $bdd->prepare('SELECT prenom FROM flowread WHERE id=?'),
$req->execute(array($_GET['id'])),
$req->fetch(),
'nom'=>$req = $bdd->prepare('SELECT nom FROM flowread WHERE id=?'),
$req->execute(array($_GET['id'])),
$req->fetch(),
'eau_prise' => $eau_prise
));
?>
Toujours le même résultat
- Edité par FlorianGanderatz1 20 mars 2019 à 12:52:31
Ce qui serais mieux là c'est de récupérer le nom et le prénom avant.Et de plus en faisant comme ça tu pourras récupérer le nom et le prénom en même temps
On ne va pas passer 3 plombes sur quelque chose qui est pourtant bateau :
if (isset($_GET['id'], $_GET['eau_prise'])) { # TOUJOURS (au moins) vérifier que la donnée existe AVANT
$stmt = $bdd->prepare('SELECT nom, prenom FROM flowread WHERE id=?');
$stmt->execute([$_GET['id']]);
if ($row = $stmt->fetch()) {
$insert=$bdd->prepare('INSERT INTO flowfontainev2(id,nom,prenom,eau_prise) VALUES(:id, :nom, :prenom, :eau_prise)');
$insert->execute([
'id' => $_GET['id'],
'prenom'=> $row['prenom'],
'nom'=> $row['nom'],
'eau_prise' => $_GET['eau_prise'],
]);
} else {
// erreur : l'id ne correspond à rien
}
} else {
// erreur paramètre(s) attendu(s) manquant(s)
}
Autre méthode, un INSERT ... SELECT :
if (isset($_GET['id'], $_GET['eau_prise'])) { # TOUJOURS (au moins) vérifier que la donnée existe AVANT
$insert=$bdd->prepare('INSERT INTO flowfontainev2(id, nom, prenom, eau_prise) SELECT id, nom, prenom, :eau_prise FROM flowread WHERE id = :id');
$insert->execute([
'id' => $_GET['id'],
'eau_prise' => $_GET['eau_prise'],
]);
if ($insert->rowCount()) {
// ok
} else {
// erreur, normalement à cause de l'id qui ne correspondait à rien
}
} else {
// erreur paramètre(s) attendu(s) manquant(s)
}
EDIT : dommage, ils ont réparé la CSS mais toujours pas le markdown, on va sur 2 ans bientôt pourtant ...
<?php
try
{ // connection à la base de données
// On se connecte à MySQL
$bdd = new PDO('mysql:host=172.16.0.11;dbname=tsti2d1', 'root', 'root');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage()); // En cas d'erreur, on affiche un message et on arrête tout
}
if (isset($_GET['id'], $_GET['eau_prise'])) { # TOUJOURS (au moins) vérifier que la donnée existe AVANT
$stmt = $bdd->prepare('SELECT nom, prenom FROM flowread WHERE id=?');
$stmt->execute([$_GET['id']]);
if ($row = $stmt->fetch()) {
$insert=$bdd->prepare('INSERT INTO flowfontainev2(id,nom,prenom,eau_prise) VALUES(:id, :nom, :prenom, :eau_prise)');
$insert->execute([
'id' => $_GET['id'],
'prenom'=> $row['prenom'],
'nom'=> $row['nom'],
'eau_prise' => $_GET['eau_prise'],
]);
} else {
// erreur : l'id ne correspond à rien
}
} else {
// erreur paramètre(s) attendu(s) manquant(s)
}
J'ai donc repris votre solution mais soit je n'y comprends rien soit c'est bourrer d'erreur... :/
( ! ) Parse error: syntax error, unexpected '&' in C:\wamp64\www\TSTI2D1\Ganderatz\projet\add5.php on line 12
[PHP & MySql] Problème de lecture/envois a une bdd
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Call me Spaceman
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
Toujours le même résultat
Call me Spaceman
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL