Dalam proses pembangunan laman web, selalunya perlu untuk menanyakan maklumat pangkalan data dalam tempoh masa tertentu, seperti menanyakan masa pendaftaran pengguna, masa pesanan pesanan atau masa penerbitan artikel. PHP menyediakan beberapa kaedah yang mudah untuk mencapai fungsi ini.
1. Penyataan pertanyaan pangkalan data
Pertama sekali, kita perlu belajar menggunakan penyata sql untuk menanya maklumat dalam tempoh masa tertentu dalam pangkalan data. Penyataan SQL yang biasa digunakan adalah seperti berikut:
Antaranya, table_name merujuk kepada jadual yang kami ingin tanya Nama jadual data, datetime_column ialah nama lajur untuk menyimpan masa. masa_mula dan masa_akhir merujuk kepada julat masa yang ingin kami tanyakan. Format masa di sini biasanya YYYY-MM-DD HH:MM:SS. SELECT * bermaksud menanyakan maklumat pada semua lajur.
Kami juga boleh bertanya hanya maklumat beberapa lajur. Contohnya:
Pernyataan ini bermaksud hanya menanyakan maklumat lajur1 dan lajur2 .
2. Gunakan php untuk menyambung ke pangkalan data
Seterusnya, kita perlu menggunakan php untuk menyambung ke pangkalan data. PHP menyediakan banyak perpustakaan sambungan untuk menyokong pelbagai jenis pangkalan data, seperti mysqli, PDO, dll.
Berikut ialah mysqli sebagai contoh untuk menunjukkan cara menyambung ke pangkalan data:
<?php $servername = "localhost"; // 数据库服务器名 $username = "username"; // 数据库用户名 $password = "password"; // 数据库密码 $dbname = "database_name"; // 数据库名 // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); // 检测连接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "Connected successfully"; ?><p>Dalam contoh ini, kami menggunakan fungsi mysqli_connect() untuk mencipta sambungan pangkalan data. Antaranya, $servername, $username, $password dan $dbname masing-masing mewakili nama pelayan pangkalan data, nama pengguna, kata laluan dan nama pangkalan data. Jika sambungan gagal, kod akan mengeluarkan "Sambungan gagal". </p> <p>3. Gunakan php untuk menanyakan pangkalan data </p> <p>Dengan sambungan pangkalan data, kita boleh menggunakan php untuk menanyakan pangkalan data dalam langkah seterusnya. Mula-mula, kita perlu membina pernyataan pertanyaan sql, dan kemudian gunakan fungsi mysqli_query() untuk melaksanakan pertanyaan. </p> <p>Dalam contoh ini, kami menanyakan masa pendaftaran pengguna: </p> <pre class="brush:php;toolbar:false"><?php $start_time = "2021-01-01 00:00:00"; $end_time = "2021-01-31 23:59:59"; $user_id = 1; $sql = "SELECT registration_time FROM users WHERE user_id = $user_id AND registration_time >= '$start_time' AND registration_time <= '$end_time'"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // 输出每行数据 while($row = mysqli_fetch_assoc($result)) { echo "registration_time: " . $row["registration_time"]. "<br>"; } } else { echo "0 结果"; } mysqli_close($conn); ?>
Dalam contoh ini, kami membina pernyataan SQL untuk menanyakan masa pendaftaran pengguna pada Januari 2021. Antaranya, $user_id, $start_time dan $end_time ialah pembolehubah yang digunakan untuk membina pernyataan sql secara dinamik. Ambil perhatian bahawa dalam pernyataan sql, kami menggunakan petikan tunggal untuk menyertakan $start_time dan $end_time. Ini kerana format masa adalah format rentetan dan perlu disertakan dalam petikan tunggal. Jika anda ingin menanyakan pembolehubah jenis angka, anda tidak memerlukan petikan tunggal. Akhir sekali, gunakan fungsi mysqli_fetch_assoc() untuk membaca hasil pertanyaan baris demi baris.
4. Gunakan PDO untuk menanyakan pangkalan data
Selain mysqli, terdapat juga perpustakaan sambungan pangkalan data PHP biasa - PDO (Objek Data PHP). PDO ialah lapisan abstraksi pangkalan data merentasi platform pangkalan data Ia dicirikan dengan menyokong pelbagai jenis pangkalan data dan mempunyai prestasi yang baik. Menggunakan PDO lebih kurang seperti ini:
<?php $dsn = "mysql:host=localhost;dbname=database_name;charset=utf8mb4"; $username = "username"; $password = "password"; try { $conn = new PDO($dsn, $username, $password); // 设置PDO错误模式为异常 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $start_time = "2021-01-01 00:00:00"; $end_time = "2021-01-31 23:59:59"; $user_id = 1; $sql = "SELECT registration_time FROM users WHERE user_id = :user_id AND registration_time >= :start_time AND registration_time <= :end_time"; $stmt = $conn->prepare($sql); $stmt->bindParam(':user_id', $user_id, PDO::PARAM_INT); $stmt->bindParam(':start_time', $start_time, PDO::PARAM_STR); $stmt->bindParam(':end_time', $end_time, PDO::PARAM_STR); $stmt->execute(); // 设置查询结果的返回模式为关联数组 $stmt->setFetchMode(PDO::FETCH_ASSOC); // 输出每行数据 while ($row = $stmt->fetch()) { echo "registration_time: " . $row["registration_time"]. "<br>"; } } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } $conn = null; ?>
Dalam contoh ini, kami menggunakan PDO untuk menyambung ke pangkalan data dan melaksanakan pernyataan SQL untuk menanyakan masa pendaftaran pengguna. Berbanding dengan mysqli, PDO lebih berorientasikan objek dalam operasi, lebih mudah untuk membaca dan menulis.
Ringkasnya, sama ada menggunakan mysqli atau PDO, PHP menyediakan banyak kaedah mudah untuk menanyakan maklumat pangkalan data dalam satu tempoh masa. Pembangun boleh memilih untuk menggunakan kaedah yang berbeza mengikut keadaan sebenar mereka.
Atas ialah kandungan terperinci Bagaimana untuk menanyakan pangkalan data dalam tempoh masa dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!