summary refs log tree commit diff
diff options
context:
space:
mode:
authormayx2022-07-26 08:30:13 +0000
committermayx2022-07-26 08:30:13 +0000
commit2521dbf5592470244e802829d5dbc843d624c62f (patch)
tree92d78f00a46ca607d89dcc477c0817ab03c50947
parent0c80238c9ee03f45c2b3bfba0f132feb35ad6c0e (diff)
Update 2019-06-22-counter.md
-rw-r--r--_posts/2019-06-22-counter.md74
1 files changed, 18 insertions, 56 deletions
diff --git a/_posts/2019-06-22-counter.md b/_posts/2019-06-22-counter.md
index e0fad06..24e19c6 100644
--- a/_posts/2019-06-22-counter.md
+++ b/_posts/2019-06-22-counter.md
@@ -59,71 +59,33 @@ CREATE TABLE `counter` (
   UNIQUE KEY `url` (`url`)
 );
 ```
+
   PHP:
 ```php
 <?php
 header('Access-Control-Allow-Origin: *');
-$con=mysqli_connect("MySQL地址","用户名","密码","数据库名"); 
-if (mysqli_connect_errno($con)) 
-{ 
-    die("连接 MySQL 失败: " . mysqli_connect_error()); 
-}
-
-$hid = md5($_GET['id']);
-
-if ( $_GET['action'] == "show" ) {
-
-$sql = "SELECT * FROM `counter` WHERE `url` = '".$hid."' ";
-$result = $con->query($sql);
-
-if ($result->num_rows > 0) {
-    while($row = $result->fetch_assoc()) {
-        echo $row["counter"];
-}
-} else {
-
-$sql = "INSERT INTO `counter` (`url`, `counter`)
-VALUES ('".$hid."', '0')";
- 
-if ($con->query($sql) === TRUE) {
-    echo "0";
-}else{
-echo "Error";
-}
-
-}
-
-} elseif ( $_GET['action'] == "add" ) {
-
+$db = new PDO("mysql:host=MySQL地址;dbname=数据库名", "用户名", "密码", array(PDO::ATTR_PERSISTENT => true));
 
-$sql = "SELECT * FROM `counter` WHERE `url` = '".$hid."' ";
-$result = $con->query($sql);
-if ($result->num_rows > 0) {
-    while($row = $result->fetch_assoc()) {
-$sql = "UPDATE `counter` SET `counter` = '".($row["counter"]+1)."' WHERE `url` = '".$hid."'";
-$con->query($sql);
-        echo ($row["counter"]+1);
-}
+if (isset($_GET['id'])){
+    $hid = (string)md5($_GET['id']);
 } else {
-
-$sql = "INSERT INTO `counter` (`url`, `counter`)
-VALUES ('".$hid."', '1')";
- 
-if ($con->query($sql) === TRUE) {
-    echo "1";
-}else{
-echo "Error";
+    header("HTTP/1.1 301 Moved Permanently");
+    header("Location: https://mabbs.github.io");
+    exit(0);
 }
-
-}
-
-
-} else {
-header("HTTP/1.1 301 Moved Permanently");
-header("Location: https://mabbs.github.io");
+$select = $db->prepare("SELECT IFNULL((SELECT `counter` FROM `counter` WHERE `url` = ?), 0) count");
+$select->execute(array($hid));
+$counter = $select->fetch(PDO::FETCH_ASSOC)['count'];
+if (isset($_GET['action'])){
+    if ($_GET['action'] == "add") {
+        $counter = $counter + 1;
+        $insert = $db->prepare("INSERT INTO `counter` (`url`, `counter`) VALUES (?, ?) ON DUPLICATE KEY UPDATE `counter` = ?");
+        $insert->execute(array($hid, $counter, $counter));
+    }
 }
-mysqli_close($con);
+echo $counter;
 ```
+  2022.07.26更新:之前的代码实在是太垃圾了,现在最起码PHP也会的差不多了,稍微优化一下。   
 
 # 结果
   看来还是自己写代码放心,至少服务是自己维护的,不像垃圾LeanCloud坏掉之后我就无能为力了……