diff options
author | mayx | 2022-07-26 08:30:13 +0000 |
---|---|---|
committer | mayx | 2022-07-26 08:30:13 +0000 |
commit | 2521dbf5592470244e802829d5dbc843d624c62f (patch) | |
tree | 92d78f00a46ca607d89dcc477c0817ab03c50947 | |
parent | 0c80238c9ee03f45c2b3bfba0f132feb35ad6c0e (diff) |
Update 2019-06-22-counter.md
-rw-r--r-- | _posts/2019-06-22-counter.md | 74 |
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坏掉之后我就无能为力了…… |