隨著網路和資料化的發展,日常資料庫操作已經成為了一項常規技能。例如在 Web 開發中,許多業務流程都需要資料的儲存、查詢和統計。在這些流程中,查詢當天的資料是一項基礎但關鍵的操作。
PHP 語言是 Web 開發中常見的後端程式語言,在它的諸多功能之中,操作資料庫是其中一個很重要的面向。在 PHP 中,查詢當天的資料也是常見且必須的功能。以下就讓我們一起來探討 PHP 如何查詢當天的資料。
首先,我們要先明確什麼是當天的數據。當然,這個問題的答案會因場景不同而有所改變。通常情況下,當天的數據指的是一天的開端到結束的數據,即包含當天的數據,其查詢的條件是數據表中的日期字段等於查詢日期。在實際應用中,查詢日期可以是使用者透過日期選擇器選擇的,也可以是系統自動取得的目前日期。
接著,我們需要連接至資料庫。連接資料庫的過程會利用 PHP 中的 mysqli 或 PDO 等擴充工具進行連線。連線的基本格式如下:
//连接到 MySQL 数据库的样例代码 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; //创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); //检查连接是否正常 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); }
上述程式碼片段中,$servername
存放的是MySQL 的主機名,$username
是MySQL 使用者名, $password
是MySQL 密碼,$dbname
是需要連線的資料庫名稱。在連線成功之後,可以使用其他 SQL 操作進行資料的查詢。
下面,我們需要明確怎麼查詢當天的資料。如果我們的資料表是這個樣子的:
id | #name | created_at |
---|---|---|
1 | A | 2022-10-20 10:00:00 |
# B | 2022-10-21 13:00:00 | |
C | 2022-10-22 14:00: 00 |
//从 MYSQL 数据库中查询当天的数据的样例代码 $date = date('Y-m-d'); //获取当前日期 $sql = "SELECT * FROM my_table WHERE DATE(created_at) = '$date'"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { //处理数据 } else { echo "0 个结果"; } //释放结果集 mysqli_free_result($result); //关闭连接 mysqli_close($conn);上述程式碼片段中,我們先用
date() 函數取得目前日期並賦值給
$date 變數。然後,我們使用
SELECT 語句,從資料表
my_table 中查詢
created_at 日期欄位等於
$date 的所有記錄,得到的結果儲存在
$result 變數中。如果結果集中有數據,則可以進行數據的處理;如果沒有結果,則會輸出「0 個結果」。
created_at 欄位是
timestamp 類型,則查詢語句應該是這樣的:
WHERE UNIX_TIMESTAMP(created_at) BETWEEN UNIX_TIMESTAMP(' $date 00:00:00') AND UNIX_TIMESTAMP('$date 23:59:59')。
//使用 PDO 扩展从 MySQL 数据库中查询当天的数据的样例代码 $date = date('Y-m-d'); //获取当前日期 $dbh = new PDO('mysql:host=localhost;dbname=myDB', $username, $password); $stmt = $dbh->prepare("SELECT * FROM my_table WHERE DATE(created_at) = ?"); $stmt->execute([$date]); $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); //处理数据 foreach ($stmt->fetchAll() as $row) { //处理数据 } //关闭连接 $dbh = null;上述程式碼片段中,我們先使用
new PDO() 函數連接至資料庫,並使用
prepare() 方法準備SQL 語句,其中
? 是SQL 語句中的佔位符。然後,在
execute() 方法中,我們將查詢日期傳遞進去,執行查詢,結果儲存在
$stmt 變數中。在取得結果集之後,我們可以透過
setFetchMode() 方法設定取得資料的方式,例如將資料以關聯陣列
FETCH_ASSOC 的形式傳回。最後,我們可以透過
fetchAll() 方法將所有資料取出來,並進行處理。
附:本文僅供學習參考,不應用於商業用途,如有侵害作者權益,請諒解。
以上是php 查詢當天的數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!