par
moogli » 02 sept. 2011, 13:16
salut,
problème de portée de variable.
tel quelle ta variable $bdd est local à la fonction, c'est adire qu'elle n'est utilisable que dans la fonction et ne fait en aucun cas référence à une quelconque variable $bdd déclarée avant dans le code
actuellement tu a
<?php
try
{
$bdd = new PDO("mysql:host=mysqlX-XX.XXXX;dbname=XXXXXX",'XXXXX', 'XXX');
$bdd->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,true);
}
catch( PDOException $e )
{
exit('Connexion impossible : '.$e->getMessage());
}
function affichageEvenement(){
$result_evenement=$bdd->query("SELECT * FROM calendar_event ");
//etc
}
?>
une fonction ou une classe permet d'avoir du code "autonome" dans un coin que tu utilisera a volonté autre part, tous ce qui passe en dehors de la fonction ou de la classe n’influence pas ce qui se passe dedans.
Pour que cela soit le cas deux possibilité :
- passer la variable en argument à la fonction (sachant que l'objet est, par défaut, passé par argument c'est nikel)
- utilisé le mot clef global ou le tableau $GLOBALS afin d'utilisé la variable déclaré en dehors de la fonction
function affichageEvenement(){
$result_evenement=$GLOBALS['bdd']->query("SELECT * FROM calendar_event ");
// ou
global $bdd;
$result_evenement=$bdd->query("SELECT * FROM calendar_event ");
// ou
function affichageEvenement($bdd){
$result_evenement=$bdd->query("SELECT * FROM calendar_event ");
et a l'utilisation
afficheEvenement( $variableConnexionPDO);
?>
@+