Bagaimana untuk menanyakan pangkalan data dalam tempoh masa dalam php

PHPz
Lepaskan: 2023-03-29 10:33:27
asal
1525 orang telah melayarinya

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:

  • SELECT * FROM table_name WHERE datetime_column >= start_time AND datetime_column <= end_time;

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:

  • PILIH lajur1, lajur2 DARI nama_jadual WHERE lajur_masa_masa >= masa_mula DAN lajur_masa <= masa_akhir;

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 <= &#39;$end_time&#39;";

$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);
?>
Salin selepas log masuk

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;
?>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan