Si vous débutez avec prestashop, vous ne connaissez peut-être pas les fonctions intégrés pour effectuer des requêtes sur votre base de données. Je vais vous expliquer comment réaliser ces requêtes simplement à l’aide de la classe « Db ».

Il existe plusieurs fonctions utiles dans la classe « Db » :

  • getInstance()->Execute() : Récupère une seule ligne de valeur
  • getInstance()->ExecuteS() : Récupère plusieurs lignes sous forme de tableau
  • getInstance()->getValue() : Récupère une seule et unique valeur

_DB_PREFIX_ est une variable contenant le préfixe des tables dans la base de données (configuré à l’installation).

Récupérer une valeur dans la base de données

result = Db::getInstance()->getValue('
	SELECT macolonne
	FROM `'._DB_PREFIX_.'matable`
	WHERE `id` = 1');
echo 'Result for id 1 : '.$result;

Ici nous récupérons la valeur de « macolonne » ayant pour identifiant : 1 dans « matable »


Récupérer une seule ligne de valeur dans la base de données

$result = Db::getInstance()->Execute('
	SELECT *
	FROM `'._DB_PREFIX_.'matable`
	WHERE `id` = 1');
$result = mysql_fetch_array($result);
echo 'Result for id : '.$result['id'];

Ici nous récupérons la ligne de « matable » ayant pour identifiant : 1


Récupérer plusieurs lignes de valeurs dans la base de données :

$results = Db::getInstance()->ExecuteS('
	SELECT *
	FROM `'._DB_PREFIX_.'matable`');
foreach ( $results as $f )
	echo 'Valeur: '.$f['macolonne'];

Ici nous listons les valeurs de « macolonne » présentes dans « matable ».

 

Attention : Il n’est pas recommandé d’effectuer des requêtes autre part que dans les classes, cependant cela s’avère parfois nécessaire. Si vous pouvez utiliser les classes pour récupérer des valeurs, faites le !

2 réponses à “[Prestashop] Effectuer des requêtes facilement dans prestashop”