Bonjour, comme indiqué, je souhaite utiliser une fonction PHP dans une requête SQL :

J'ai une base de donnée PSQL qui contient une table ip avec notamment un champ "modif" de type text.

J'ai une fonction get_age($string) qui va prendre en paramètre une chaîne de caractères formatée comme "modif", la parser, récupérer la date d'ajout contenu dans cette chaîne et retourner TRUE si cette date est inférieure à un certain âge.

Ci-dessous la fonction get_age() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
function	get_age($modif)
{
	$days_limit = 10;
	$modif = strstr($modif, "Adresse IP ajoutée le ");
	if ($modif)
	{
		$str_date = substr($modif, 22, 11);
		$date = new DateTime($str_date);
		$now = new DateTime();
		// echo "Date de création de l'IP : ".$date->format('d/m/Y')."<br />";
		// echo "Date actuelle : ".$now->format('d/m/Y')."<br />";
		$interval = $date->diff($now);
		$interval->format('%d');
		if ($interval->m == 0 AND $interval->y == 0)
			if ($interval->d < $days_limit)
				return TRUE;
	}
	return FALSE;
}
?>
Or à un moment dans mon code, j'effectue une requête pour mettre à jour ma base de données et j'aimerai utiliser cette fonction dans une requête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$request = "UPDATE ip SET actif = '0'";
En gros j'aimerai pouvoir faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$request = "UPDATE ip SET actif = '0' WHERE get_age(modif)";
(modif est un champ de la table ip au même titre que actif)

Existe-il une solution simple pour effectuer cette requête ?


Cordialement.