Voilà, je suis un de ceux qui préfèrent coder en procédural (plus simple quand on n'est pas développeur de métier
Toutefois, pour ne pas mourrir idiot... et surtout essayer de faire une application indépendante du serveur de BDD, j'essaye de me mettre petit à petit à l'objet (mais j'aime pô...
Dans un premier temps, je vais surtout avoir besoin des instructions suivantes : SELECT, INSERT et UPDATE, mais en dépit de recherche de docs/exemples sur le net, je rencontre un certain nombre de problèmes
Voici le code de mon test (sont inclus les fichiers PEAR.php et MDB2.php):
<?php
//On définit le tableau pour la connexion
$aDBParam = array(
"phptype" => "mysql",
"username" => "mon_user",
"password" => "mon_pwd",
"hostspec" => "mon_host",
"database" => "ma_bdd"
);
//On effectue la connexion à la BDD
$mdb =& MDB2::connect($aDBParam);
if (PEAR::isError($mdb))
{
die ("Problème de connexion : ".$mdb->getMessage());
}
//RECUPERATION
//On initialise le mode de récupération des données
$mdb->setFetchMode(MDB2_FETCHMODE_ASSOC);
//On charge le module des fonctions supplémentaires
$mdb->loadModule("Extended");
//On va récupérer les infos des users
$sReq01 = "SELECT * FROM site_user";
$aUtilisateur = $mdb->extended->getAll($sReq01);
//Pour chaque résultat, on affiche
foreach ($aUtilisateur as $unUtilisateur)
{
echo "Identifiant : ".$unUtilisateur["user_id_site"];
echo "<br />";
echo "FK Forum : ".$unUtilisateur["user_id_phpbb_fk"];
echo "<br />";
echo "Pseudo : ".$unUtilisateur["user_pseudo"];
echo "<br />";
echo "Surnom : ".$unUtilisateur["user_surnom"];
echo "<br />";
echo "Nom : ".$unUtilisateur["user_nom"];
echo "<br />";
echo "Prénom : ".$unUtilisateur["user_prenom"];
echo "<br />";
echo "mail : ".$unUtilisateur["user_mail_association"];
echo "<br /><br />";
}
//INSERTION
//On indique le type de données
$aTypes = array('integer', 'integer', 'text', 'text', 'text', 'text', 'text', 'text', 'text');
//La requête d'insertion
$sReq02 = "INSERT INTO site_user (user_id_site, user_id_forum, user_pseudo, user_surnom, user_nom, user_prenom, user_mail) VALUES (?, ?, ?, ?, ?, ?, ?);";
//On met les données dans un tableau
/*$aDonnees = array(
"user_id_site" => $mdb->nextID('site_user'),
"user_id_forum" => 54,
"user_pseudo" => "Toto",
"user_surnom" => "Blague à",
"user_nom" => "TUTU",
"user_prenom" => "Toto",
"user_mail" => "[email protected]"
);
//On prépare la requête avec les types choisis et le formatage du SQL
$sReqPreparee = $mdb->extended->prepare($sReq02, $aTypes, MDB2_PREPARE_MANIP);
//On l'exécute
$sReqPreparee->execute($aDonnees);
//On libère la mémoire
$sReqPreparee->free();
//On se déconnecte de la BDD
$db->disconnect();
?>
1- Pour la récupération des données, tout semble OK (peut être le code n'est pas propre/bon ?), mais je retrouve bien mes infos.2- Par contre, au niveau de l'insertion..., rien ne se passe !
- - est-ce que mon code vous parait "juste" ?
- j'ai un souci au niveau de l'identifiant... sur ma base de test (MySQL), c'est un auto-increment, et "avant" (en procédural) je laissais le champ vide et MySQL le remplissait automatiquement.
Là... ça me pose problème car le champ vide, c'est pas bon... j'ai voulu essayer le "nextID()", mais ça ne semble pas fonctionner.
Merci d'avance à tous.
Cordialement.
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]