Blog de Portekoi : Programmation et Astuces

Programmation Cobol, Php, Asp, Java et DotNet…

Mysql

Requêtes préparées avec Mysqli

Il y a de cela un petit moment, j’avais lu une discussion à propos des requêtes préparées. (prepared statements en anglais)

C’est quoi une requêtes préparée?

La vraie question serait : qu’est-ce qui la différencie d’une requête normale?

Sauvegarde d’une base Mysql avec ou sans les données

J’ai récemment été confronté à un dilemme : Pouvoir recréer en local ma structure de base de données rapidement afin de lancer des tests unitaires.

Le souci est que certaines tables sont des données « systèmes » alors que d’autres non dont je n’ai nullement besoin.

Par exemple, je n’ai pas besoin des données de ma table « commande », « client » et à l’inverse, j’ai besoin de ma table « produit » etc.

Voici un script qui permet de générer un fichier « .zip » et qui contiendra les X fichiers sql dont vous avez besoin.

Le premier appel permet de ne prendre que les tables sans les données.

Le second appel prendra TOUTES les tables SAUF celles chargées lors du premier appel.

<?php
//domaine.fr/back/
$path = $_SERVER["DOCUMENT_ROOT"] . ‘/back/’;

$table = array(
    "table1",
    "table2",
  […]

Résultat d’une requête groupée par quinzaine…

Voici comment afficher un résultat de requête sous la forme suivante :

Jan 2013 Day 16-31 Donnée_1 Donnée_2
Jan 2013 Day 01-15 Donnée_1 Donnée_2
Dec 2012 Day 16-31 Donnée_1 Donnée_2
Dec 2012 Day 01-15 Donnée_1 Donnée_2

Ici, les données sont regroupées par quinze jours.

Voici la requêtes :

select
CONCAT( DATE_FORMAT(`date_add`, ‘%b %Y Day ‘ ),
case when dayofmonth( `date_add` ) < 16 then '01-15' else CONCAT( '16-', right( last_day( `date_add` ), 2) ) [...]

MYSQL : Décomposition en Jour(s) Heure(s) et Minute(s)

Une fonction toute simple pour obtenir une différence entre deux dates en jour(s), heure(s) et minute(s) :

SELECT CONCAT(DAYOFYEAR(NOW())-DAYOFYEAR(‘2012-12-01′),’ jour(s) ‘,
DATE_FORMAT(ADDTIME(« 2000-00-00 00:00:00 »,
SEC_TO_TIME(TIME_TO_SEC(NOW())-TIME_TO_SEC(‘2012-12-01’))),
‘%k heure(s) et %i minutes’)) AS time

Affichera :

5 jour(s) 23 heure(s) et 05 minute(s) (now = 06/12/2012)