Faire écho à un décalage horaire à partir d'une réponse MySQL en PHP
En PHP, vous pouvez utiliser la fonction mysql_query() pour exécuter des requêtes SQL sur une base de données MySQL. Cependant, lorsque vous essayez d'écho() le résultat d'une requête qui renvoie un décalage horaire, vous pouvez rencontrer le message d'erreur « ID de ressource n°6 ».
Comprendre l'erreur
L'erreur « ID de ressource n°6 » indique que l'instruction echo() tente d'imprimer un descripteur de ressource au lieu des données réelles. Un handle de ressource est un identifiant unique attribué au résultat défini par le serveur MySQL.
Solution
Pour afficher correctement le décalage horaire, vous devez utiliser une fonction de récupération pour récupérer les données réelles de l’ensemble de résultats. Plusieurs fonctions de récupération sont disponibles, notamment mysql_fetch_row(), mysql_fetch_array() et mysql_fetch_assoc().
Voici un exemple qui utilise la fonction mysql_fetch_assoc() :
$result = mysql_query(sprintf("SELECT TIMEDIFF(NOW(), '%s') as time_delta", $row['fecha'])); if ($result) { $data = mysql_fetch_assoc($result); echo $data['time_delta']; }
Remarque :
Les fonctions mysql_* sont obsolète et ne doit pas être utilisé dans de nouveaux projets. Utilisez plutôt les extensions PDO_MySQL ou mysqli.
Exemple amélioré utilisant PDO
$pdo = new PDO('mysql:host=localhost;dbname=database_name', 'username', 'password'); $stmt = $pdo->prepare("SELECT TIMEDIFF(NOW(), :fecha) as time_delta"); $stmt->bindParam(':fecha', $row['fecha'], PDO::PARAM_STR); $stmt->execute(); $data = $stmt->fetch(PDO::FETCH_ASSOC); echo $data['time_delta'];
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!