如何将 1 添加到我的数据库中的 "kijkers" table。用于统计网站被访问的次数
How to add 1 to my "kijkers" table in my database. It is for counting how many times the site is visited
我有这段代码,它应该在您打开网站时加 1,但它会将当前数字加 1 并且不会更新它。它应该更新它以便正确显示访问量。
"Kijkers" 是 0,所以当我打开它时它会变为 1,但之后它不会更新它。
我尝试改变一些东西但没有成功。
<?php
include 'db_conn.php';
$find_counts = "SELECT * FROM visitors";
$result = mysqli_query($conn, $find_counts);
while ($row = mysqli_fetch_assoc($result))
{
//Kijkers = 0 in database
$current_counts = $row['Kijkers'];
$new_count = $current_counts + 1;
$update_count = "UPDATE visitors SET Kijkers='$new_count'";
echo $new_count;
}
?>
我预计它会更新它并在刷新或重新加载页面时继续加 1。
您不必事先获取 Kijkers 的当前值。您可以只向数据库发送一个增量语句。
像这样:
UPDATE visitors SET Kijkers=Kijkers + 1;
你的方法有两个问题。
第一个是您没有执行更新查询。这可以通过添加 mysqli_query($conn, $update_count)
语句轻松解决。
第二个问题有点隐蔽:你的事务不是原子的。考虑以下两个用户几乎同时访问的情况。假设此时 Kijkers
的值为 10:
User A | User B
------ | ------
select value 10 |
| select value 10
update value 11 |
| update value 11
|
V
因此,即使有两次单独的访问,您的计数也只增加了一次。
因此,最好只根据数据库中的当前值执行更新查询:
$update_count = "UPDATE visitors SET Kijkers = Kijkers + 1";
if (mysqli_query($conn, $update_count)) {
echo "<br>Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($conn);
}
这是一个原子操作,解决了上述问题。
我有这段代码,它应该在您打开网站时加 1,但它会将当前数字加 1 并且不会更新它。它应该更新它以便正确显示访问量。 "Kijkers" 是 0,所以当我打开它时它会变为 1,但之后它不会更新它。
我尝试改变一些东西但没有成功。
<?php
include 'db_conn.php';
$find_counts = "SELECT * FROM visitors";
$result = mysqli_query($conn, $find_counts);
while ($row = mysqli_fetch_assoc($result))
{
//Kijkers = 0 in database
$current_counts = $row['Kijkers'];
$new_count = $current_counts + 1;
$update_count = "UPDATE visitors SET Kijkers='$new_count'";
echo $new_count;
}
?>
我预计它会更新它并在刷新或重新加载页面时继续加 1。
您不必事先获取 Kijkers 的当前值。您可以只向数据库发送一个增量语句。
像这样:
UPDATE visitors SET Kijkers=Kijkers + 1;
你的方法有两个问题。
第一个是您没有执行更新查询。这可以通过添加 mysqli_query($conn, $update_count)
语句轻松解决。
第二个问题有点隐蔽:你的事务不是原子的。考虑以下两个用户几乎同时访问的情况。假设此时 Kijkers
的值为 10:
User A | User B
------ | ------
select value 10 |
| select value 10
update value 11 |
| update value 11
|
V
因此,即使有两次单独的访问,您的计数也只增加了一次。
因此,最好只根据数据库中的当前值执行更新查询:
$update_count = "UPDATE visitors SET Kijkers = Kijkers + 1";
if (mysqli_query($conn, $update_count)) {
echo "<br>Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($conn);
}
这是一个原子操作,解决了上述问题。