萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

從 PHP 計數器實例學 MySQL 查詢、插入、更新、刪除核心語法

實例背景:IP 計數器

程式邏輯:記錄每個 IP 的訪問次數 (sum) 及全站總訪問量 (count),不重複計算同 IP。

<?php
$ip = getenv("REMOTE_ADDR");
$conn = mysql_connect('ip','root','****');
mysql_select_db('db',$conn);

// 檢查 IP 是否存在
$sql = "SELECT * FROM counter WHERE ip='$ip'";
$result = mysql_query($sql,$conn);
$num = mysql_num_rows($result);

// 總訪問量
$count = mysql_num_rows(mysql_query("SELECT * FROM counter",$conn));

if ($num == 0) {          // 新 IP
    $sum = 1;
    $count++;
    mysql_query("INSERT INTO counter (ip,sum,countdata) VALUES ('$ip','1','$count')",$conn);
} else {                   // 舊 IP
    $row = mysql_fetch_array(mysql_query("SELECT sum FROM counter WHERE ip='$ip'"));
    $sum = ++$row['sum'];
    mysql_query("UPDATE counter SET sum='$sum' WHERE ip='$ip'");
}
mysql_close($conn);

// 顯示圖形化計數器 (略)
echo "這是你的第 $sum 次訪問";
?>

核心 SQL 語法拆解

一、 SELECT 查詢

用法範例說明
全欄位SELECT * FROM table1;
指定欄位SELECT field1,field2 FROM table1;
統計筆數SELECT COUNT(*) FROM table2;
多表聯查SELECT t1.f1,t2.f2 FROM t1,t2 WHERE t1.f1='v1';
條件+排序SELECT * FROM t1 WHERE f1='v1' AND f2='v2' ORDER BY f1;
分頁SELECT * FROM t1 WHERE f1='v1' ORDER BY f1 DESC LIMIT n;
模糊查詢SELECT * FROM t2 WHERE name LIKE '%$lin%';
子查詢SELECT * FROM t1 WHERE id IN (SELECT id FROM t2 ...);進階
最大值SELECT MAX(field1) AS field1 FROM table1;

二、 UPDATE 更新

UPDATE table1 SET field1='value1', field2='value2' WHERE field3='value3';
  • SET 指定欄位新值,WHERE 限定範圍 (省略則全表更新)。

三、 INSERT 插入

-- 基本語法
INSERT INTO table1 VALUES ('val1','val2',...);

-- REPLACE: 若唯一鍵衝突則先刪舊再插新
REPLACE INTO tbl_name (col1,col2,col3) VALUES ('1','2','3');

四、 DELETE 刪除

DELETE FROM table1 WHERE field1='$val1' AND field2='$val2';
  • 回傳刪除筆數;無 WHERE 則清空全表 (慎用)。

進階補充

  • SELECT ... INTO OUTFILE、INSERT ... SELECT 可替代 SELECT ... INTO TABLE (MySQL 不直接支援)。
  • 實務上建議使用 mysqli 或 PDO 預處理語句防止 SQL 注入,舊版 mysql_* 函數已棄用。
copyright © 萬盛學電腦網 all rights reserved