Menggemakan Perbezaan Masa daripada Respons MySQL dalam PHP
Dalam PHP, anda boleh menggunakan fungsi mysql_query() untuk melaksanakan pertanyaan SQL terhadap pangkalan data MySQL. Walau bagaimanapun, apabila anda cuba echo() hasil pertanyaan yang mengembalikan perbezaan masa, anda mungkin menghadapi mesej ralat "ID Sumber #6."
Memahami Ralat
Ralat "ID Sumber #6" menunjukkan bahawa pernyataan echo() cuba mencetak pemegang sumber dan bukannya data sebenar. Pemegang sumber ialah pengecam unik yang diberikan kepada hasil yang ditetapkan oleh pelayan MySQL.
Penyelesaian
Untuk memaparkan perbezaan masa dengan betul, anda perlu menggunakan fungsi ambil untuk mendapatkan semula data sebenar daripada set hasil. Terdapat beberapa fungsi pengambilan yang tersedia, termasuk mysql_fetch_row(), mysql_fetch_array(), dan mysql_fetch_assoc().
Berikut ialah contoh yang menggunakan mysql_fetch_assoc() fungsi:
$result = mysql_query(sprintf("SELECT TIMEDIFF(NOW(), '%s') as time_delta", $row['fecha'])); if ($result) { $data = mysql_fetch_assoc($result); echo $data['time_delta']; }
Nota:
Fungsi mysql_* tidak digunakan dan tidak boleh digunakan dalam projek baharu. Sebaliknya, gunakan sambungan PDO_MySQL atau mysqli.
Contoh yang Dipertingkat Menggunakan 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'];
Atas ialah kandungan terperinci Bagaimana untuk Menggemakan Perbezaan Masa MySQL dengan betul dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!