mysql视图减少了

miy*_*uru 0 php mysql views image

我拥有一个图像托管网站,我使用php和mysql捕获图像视图.

我使用以下代码来计算视图.

include 'mysql.php';

$result = mysql_query("SELECT * FROM DB WHERE ID='$id'");
$row = mysql_fetch_array($result);
$views=$row['views'];

$query = "UPDATE DB SET views=$views+1 WHERE ID='$id'";
$result2 = mysql_query($query);

mysql_close($con);
Run Code Online (Sandbox Code Playgroud)

views是mediumint(9)类型字段.

我注意到观点日益减少.任何人都说出了什么问题并提供了解决方案.

谢谢.

Flu*_*feh 5

您应该使用它来更新:

$query = "UPDATE DB SET views=views+1 WHERE ID='$id'";
Run Code Online (Sandbox Code Playgroud)

如果页面执行时间很长,您可以让一个查询覆盖另一个查询.使用此功能,您可能不需要运行第一个查询 - 除非您需要其他信息.

您收到错误的原因是一个脚本正在读取数据并获取值,然后根据它存储的值更新它 - 但与此同时其他脚本可能正在更新行.你可以通过使用交易来避免这种情况,但这对你正在做的事情来说似乎有点过分.

  • @msankalpa那很棒.我的好朋友Mihai确实为使用PDO提供了一个很好的建议(甚至是示例代码!).它更安全,你的代码将从升级到它大大受益:) (2认同)