8791 sujets

Développement web côté serveur, CMS

j'ai commencé a apprendre et utiliser PDO mais je me bloke au niveau appell a des fonctions dans une classe

$database_type = 'mysql';

class mysql extends PDO {
    function column_data() {
        print c'est mysql;
    }
}
class sqlite extends PDO {
    function column_data() {
        c'est sqllite;
    }
}


class db {

  
    private static $instance = NULL;


    public static function instance() {

        global $database_type;
        
        if (!self::$instance) {
            self::$instance = new $database_type("mysql:host=localhost;dbname=cm", 'root', '');
        }
        return self::$instance;
    }


}

//Get the Singleton instance of the DB connection
$db = db::instance();

function calcul_heures_sup_paye($sar,$type_heures)

  {
$statment = $db->query('select somme(Total) as somme , week(date,1) as semaine from heures_sup where brig like"%am%" and proc like "%$PH%" group by week(date,1)'); 
$requete=$this-> query($sql);
$result = $statment->fetch(PDO::FETCH_ASSOC);
echo '<table>';
foreach ($result as $row)

                   {
				  $somme = $row['somme'] ;
			
                   }

echo '</table>';
}				  
	
				   			   
print_r(calcul_heures_sup_paye('AM','PH'));

$db->column_data();


il y'a erreur au niveau instancier objet PDO . en faite j'arrive pas àexecuter focntion de calcul heures
idée est de créer classe ou je met tous les fonctions et après a chaque page je fais apell a ces fonctions. par exemple dans calcul heures je dois changer les paramtres comme vous l'avez vu dans la requete . donc ça sera pas performant que je fai des requetes dans meme page.
.j'ai cherché mais je trouve pas tutorial vraiment qui integre PDO dans une classe et appelle a des requetes
merçi d'avance pour votre aide
Bonjour quand même ! As-tu lu les règles à respecter du forum ?

S'il y a une erreur, ce serait sympa de nous la donner car tout le monde n'a pas une boule de cristal à portée de main pour deviner tes erreurs !

Possèdes-tu la moindre connaissance en POO ?

As-tu consulté la documentation officielle de PDO ? Voir la Doc. de PDO
bonjour et excuse moi de ne pas mettre erreur
comme je dis je comence en pdo , j'ai quelque conaissance en orienté objet mais je suis encore debutant

j'ai essayé d'autres solution comme celui ci:

class base extends PDO { 
 
    function __construct()
    {
        parent::__construct('mysql:dbname=cm;host=localhost', 'root', '');
        $this->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('DBStatement', array($this)));
    }
}
class DBStatement extends PDOStatement
{
    public $dbh;

    protected function __construct($dbh)
    {
        $this->dbh = $dbh;
        $this->setFetchMode(PDO::FETCH_OBJ);
    }
    

	
	function select() {
           $sql = 'SELECT  * from ma table'

                  try {
                       $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
                      $stmt->execute();
                      $row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
                                do {
                                       $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
                                       print $data;
                             } while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));
                             $stmt = null;
                       }
                          catch (PDOException $e) {
                          print $e->getMessage();
                                                  }
                                     }
} 


$oPDO = base ();



select();


?> 

volia erreur:
Fatal error: Call to undefined function select() in C:\Program Files\EasyPHP 2.0b1\www\PIC PARIS NORD\RH\class_rh.cls.php on line 49


mais j'arrive pas a appeler la fonction select Smiley confus
le probleme avec PDO seulement j'ai arrivé a connecté a faire mes requetes. mais vu je dois creer une class principal et creer des fonctions avec des requetes j'arrive pas a utiliser PDO dans orienté objet
erreur c'est :

Fatal error: Call to undefined function selects() in C:\Program Files\EasyPHP 2.0b1\www\kkkk\RH\class_rh.cls.php on line 49