summaryrefslogtreecommitdiff
path: root/_posts/2019-06-22-counter.md
diff options
context:
space:
mode:
authormayx <mayx@outlook.com>2022-07-26 10:30:13 +0200
committermayx <mayx@outlook.com>2022-07-26 10:30:13 +0200
commit2521dbf5592470244e802829d5dbc843d624c62f (patch)
tree92d78f00a46ca607d89dcc477c0817ab03c50947 /_posts/2019-06-22-counter.md
parent0c80238c9ee03f45c2b3bfba0f132feb35ad6c0e (diff)
Update 2019-06-22-counter.md
Diffstat (limited to '_posts/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坏掉之后我就无能为力了……