Echo eines Zeitunterschieds aus einer MySQL-Antwort in PHP
In PHP können Sie die Funktion mysql_query() verwenden, um SQL-Abfragen auszuführen eine MySQL-Datenbank. Wenn Sie jedoch versuchen, das Ergebnis einer Abfrage, die einen Zeitunterschied zurückgibt, mit echo() abzurufen, wird möglicherweise die Fehlermeldung „Ressourcen-ID Nr. 6“ angezeigt.
Verstehen des Fehlers
Der Fehler „Ressourcen-ID #6“ weist darauf hin, dass die echo()-Anweisung versucht, ein Ressourcenhandle anstelle der tatsächlichen Daten zu drucken. Ein Ressourcenhandle ist eine eindeutige Kennung, die dem Ergebnissatz vom MySQL-Server zugewiesen wird.
Lösung
Um den Zeitunterschied korrekt anzuzeigen, müssen Sie eine Abruffunktion verwenden um die tatsächlichen Daten aus der Ergebnismenge abzurufen. Es stehen mehrere Abruffunktionen zur Verfügung, darunter mysql_fetch_row(), mysql_fetch_array() und mysql_fetch_assoc().
Hier ist ein Beispiel, das mysql_fetch_assoc() verwendet Funktion:
$result = mysql_query(sprintf("SELECT TIMEDIFF(NOW(), '%s') as time_delta", $row['fecha'])); if ($result) { $data = mysql_fetch_assoc($result); echo $data['time_delta']; }
Hinweis:
Die mysql_*-Funktionen sind veraltet und sollten nicht in neuen Projekten verwendet werden. Verwenden Sie stattdessen die Erweiterungen PDO_MySQL oder mysqli.
Verbessertes Beispiel mit 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'];
Das obige ist der detaillierte Inhalt vonWie kann ich einen MySQL-Zeitunterschied in PHP korrekt wiedergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!