2019-03-05 16:49:15 +01:00
|
|
|
<?php
|
|
|
|
|
2019-03-14 16:48:02 +01:00
|
|
|
namespace MVC\Classe;
|
|
|
|
|
2019-03-05 16:49:15 +01:00
|
|
|
class Bdd
|
|
|
|
{
|
|
|
|
public $bdd;
|
|
|
|
|
2019-03-14 10:43:54 +01:00
|
|
|
public function __construct($bdd = 'bdd1')
|
2019-03-05 16:49:15 +01:00
|
|
|
{
|
2020-12-09 10:26:26 +01:00
|
|
|
switch ($bdd) {
|
2019-03-14 10:43:54 +01:00
|
|
|
case 'bdd1':
|
2020-12-09 09:07:15 +01:00
|
|
|
$this->bdd = new \PDO(DSN_BDD1, USER_BDD1, PASS_BDD1);
|
2019-12-04 15:52:04 +01:00
|
|
|
break;
|
2019-03-14 10:43:54 +01:00
|
|
|
case 'bdd2':
|
2020-12-09 09:07:15 +01:00
|
|
|
$this->bdd = new \PDO(DSN_BDD2, USER_BDD2, PASS_BDD2);
|
2019-12-04 15:52:04 +01:00
|
|
|
break;
|
2019-03-14 10:30:11 +01:00
|
|
|
default:
|
2020-12-09 09:07:15 +01:00
|
|
|
$this->bdd = new \PDO(DSN_BDD_DEFAULT, USER_BDD_DEFAULT, PASS_BDD_DEFAULT);
|
2019-03-14 10:30:11 +01:00
|
|
|
}
|
2020-12-09 09:07:15 +01:00
|
|
|
$this->bdd->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_WARNING);
|
|
|
|
$this->bdd->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_ASSOC);
|
2019-03-05 16:49:15 +01:00
|
|
|
}
|
|
|
|
|
2020-12-09 09:07:15 +01:00
|
|
|
public function faireSQLRequete($sql)
|
2019-03-05 16:49:15 +01:00
|
|
|
{
|
2020-12-09 09:07:15 +01:00
|
|
|
$req = $this->bdd->query($sql);
|
2021-02-03 09:32:48 +01:00
|
|
|
// Print Pdo::ERRORs
|
|
|
|
if (!$req && (ENV == 'TEST' || ENV == 'DEV')) {
|
|
|
|
echo "\nPDO::errorInfo():\n";
|
|
|
|
print_r($this->bdd->errorInfo());
|
|
|
|
}
|
2019-03-05 16:49:15 +01:00
|
|
|
return $req;
|
|
|
|
}
|
|
|
|
|
2021-01-11 15:10:03 +01:00
|
|
|
public function getLastInsertId(){
|
|
|
|
return $this->bdd->lastInsertId();
|
|
|
|
}
|
|
|
|
|
2020-12-09 09:07:15 +01:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
* Exemple:
|
|
|
|
* $sql = "SELECT * FROM annonce WHERE cat_id = :categorie and ann_est_valide = 1";
|
|
|
|
* $req = $bdd->faireBindRequete($sql,
|
|
|
|
* array(
|
|
|
|
* array('categorie', $categorie, \PDO::PARAM_INT),
|
|
|
|
* )
|
|
|
|
* );
|
|
|
|
* $data = $bdd->exploiterResultat($req)
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @param $sql
|
|
|
|
* @param array|null $params
|
|
|
|
* @return bool|\PDOStatement
|
|
|
|
*/
|
2020-12-09 10:26:26 +01:00
|
|
|
public function faireBindRequete($sql, array $params = null)
|
|
|
|
{
|
2020-12-09 09:07:15 +01:00
|
|
|
$req = $this->bdd->prepare($sql);
|
2020-12-09 10:26:26 +01:00
|
|
|
if ($params) {
|
2020-12-09 09:07:15 +01:00
|
|
|
foreach ($params as $value) {
|
2020-12-09 10:26:26 +01:00
|
|
|
$req->bindParam($value[0], Caracter::normalise_ChaineDeCaracteres($value[1]), $value[2]);
|
2020-12-09 09:07:15 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
$req->execute();
|
2021-02-03 09:32:48 +01:00
|
|
|
// Print Pdo::ERRORs
|
|
|
|
if (!$req && (ENV == 'TEST' || ENV == 'DEV')) {
|
|
|
|
echo "\nPDO::errorInfo():\n";
|
|
|
|
print_r($this->bdd->errorInfo());
|
|
|
|
}
|
2020-12-09 09:07:15 +01:00
|
|
|
//$req->closeCursor();
|
|
|
|
return $req;
|
|
|
|
}
|
2019-03-05 16:49:15 +01:00
|
|
|
|
2020-12-09 10:26:26 +01:00
|
|
|
public function exploiterResultat($req)
|
|
|
|
{
|
2020-12-09 09:07:15 +01:00
|
|
|
$res = $req->fetchAll();
|
2020-12-09 10:26:26 +01:00
|
|
|
foreach ($res as $data) {
|
2020-12-08 08:47:44 +01:00
|
|
|
foreach ($data as $key => $row) {
|
|
|
|
if (is_string($row)) {
|
2020-12-09 09:07:15 +01:00
|
|
|
$row = Caracter::normalise_ChaineDeCaracteres($row);
|
2020-12-08 08:47:44 +01:00
|
|
|
}
|
|
|
|
$data[$key] = $row;
|
2019-12-04 15:52:04 +01:00
|
|
|
}
|
2019-03-05 16:49:15 +01:00
|
|
|
}
|
2020-12-08 08:47:44 +01:00
|
|
|
return $res;
|
2019-03-05 16:49:15 +01:00
|
|
|
}
|
2020-12-09 10:26:26 +01:00
|
|
|
}
|