[RESOLU] Insert into

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Insert into

Re: Insert into

par Dom! » 29 mars 2017, 22:27

Bonsoir à tous,

j'ai revu tout mon code et j'ai utilisé vos conseils et liens.
Tout fonctionne je vous remercie.
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=uscagnes_secretariat', 'uscagnes_secretariat', 'papayoyo');
}
catch (Exception $e)
{
        // En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur1 : ' . $e->getMessage());
}
$tab = array(
    ':pseudo'          	=> $_POST['pseudo'],
    ':id_membres'       => $_POST['id_membres'],
	':pass'    			=> $_POST['pass'],
	':info'  			=> $_POST['info'],
	':email'        	=> $_POST['email'],   
);
//création de la requête SQL:
$sql = "INSERT INTO `tb_admin`(`pseudo`, `id_membres`, `pass`, `info`, `email`) 
	VALUES(:pseudo, :id_membres, :pass, :info, :email)";
// ça, c'est juste le temps de comprendre ;)
echo $sql;
$req = $bdd->prepare($sql);
// cette méthode te retourne true/false si ça a réussi/échoué
$result = $req->execute($tab);
// Du coup, on peux tester sur le retour et afficher l'erreur en cas de soucis
if (!$result) {
    echo "Une erreur est survenue : " . $req->errorCode();
    print_r($req->errorInfo());
}
// fermeture de la connection à la bdd
if ($bdd) {
    $bdd = NULL;
}
?>

Re: Insert into

par or 1 » 29 mars 2017, 14:09

et aussi :
$conn = ...
$stmt = $_bdd-> ...

Re: Insert into

par moogli » 29 mars 2017, 10:18

Salut,

commence par suivre la doc pour la connexion car si tu as une erreur à la connexion tu ne fait de l'exception (et vu que tu ne semble pas afficher les erreurs tu ne vois rien).
=> http://php.net/manual/fr/pdo.construct.php#example-1033

Le premier problème vient de ces lignes
$servername = "localhost";
$username = "";
$password = "";
$dbname = "";
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
il y a peu de chance que tu puisses te connecter sans utilisateur (sans base ou mot de passe pourquoi pas mais sans utilisateur c'est moins sur).

+ remarque de spols bien entendus :)

@+

Re: Insert into

par Spols » 29 mars 2017, 08:23

avec une page blanche, commence par ce tuto
https://forum.phpfrance.com/faq-tutorie ... 73178.html


sinon je vois aussi que tu utilise une fois :pass_hache et après :pass il faut harmoniser et utiliser la même chose partout

Insert into

par Dom! » 28 mars 2017, 22:44

Bonjour,
J'ai un problème pour ajouter des données dans ma base de données.

J'utilise ceci mais je ne vois pas l'erreur... mon problème est que je me trouve avec une page blanche et pas de données d'insérer...
$servername = "localhost";
$username = "";
$password = "";
$dbname = "";
 	$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	$pseudo = (isset($_POST['pseudo'])) ? $_POST['pseudo'] : '';
	$email = (isset($_POST['email'])) ? $_POST['email'] : '';
	$pass_hache = (isset($_POST['pass'])) ? $_POST['pass'] : '';
	$info = (isset($_POST['info'])) ? $_POST['info'] : '';
	$id_membres = (isset($_POST['id_membres'])) ? $_POST['id_membres'] : '';
	$test = (isset($_POST['test'])) ? $_POST['test'] : '';

if($test=='ajout')
	{
		//$requete=$_bdd->prepare('INSERT INTO membres(:id_membre, :email)');
		$sql = "INSERT INTO admin(pseudo, id_membres, pass, info, email) VALUES(:pseudo, :id_membres, :pass_hache, :info, :email)";
 		$stmt = $_bdd->prepare($sql);
 	        $stmt->execute(array(':pseudo'=> $pseudo, ':id_membres' => $id_membres', :pass' => $pass, ':info' => $info, ':email' => $email));
 
} else {
		echo '<p>Erreur lors de l\'insertion : </p>';
	}
	?>
Je vous remercie pour votre aide.