Update 2019-06-22-counter.md

This commit is contained in:
mayx 2022-07-26 08:30:13 +00:00
parent 0c80238c9e
commit 2521dbf559

View File

@ -59,71 +59,33 @@ CREATE TABLE `counter` (
UNIQUE KEY `url` (`url`) UNIQUE KEY `url` (`url`)
); );
``` ```
PHP PHP
```php ```php
<?php <?php
header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Origin: *');
$con=mysqli_connect("MySQL地址","用户名","密码","数据库名"); $db = new PDO("mysql:host=MySQL地址;dbname=数据库名", "用户名", "密码", array(PDO::ATTR_PERSISTENT => true));
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" ) {
$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);
}
} else {
$sql = "INSERT INTO `counter` (`url`, `counter`)
VALUES ('".$hid."', '1')";
if ($con->query($sql) === TRUE) {
echo "1";
}else{
echo "Error";
}
}
if (isset($_GET['id'])){
$hid = (string)md5($_GET['id']);
} else { } else {
header("HTTP/1.1 301 Moved Permanently"); header("HTTP/1.1 301 Moved Permanently");
header("Location: https://mabbs.github.io"); header("Location: https://mabbs.github.io");
exit(0);
} }
mysqli_close($con); $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));
}
}
echo $counter;
``` ```
2022.07.26更新之前的代码实在是太垃圾了现在最起码PHP也会的差不多了稍微优化一下。
# 结果 # 结果
看来还是自己写代码放心至少服务是自己维护的不像垃圾LeanCloud坏掉之后我就无能为力了…… 看来还是自己写代码放心至少服务是自己维护的不像垃圾LeanCloud坏掉之后我就无能为力了……