Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我试图在数据库的count列中增加value的值。我做了一个逻辑,但它不起作用_Php - Fatal编程技术网

Php 我试图在数据库的count列中增加value的值。我做了一个逻辑,但它不起作用

Php 我试图在数据库的count列中增加value的值。我做了一个逻辑,但它不起作用,php,Php,我试图将从count列获得的值与递增的值交换,以便 刷新我获得一个新的值增量值如果您实际上不需要对该值执行任何操作,则运行以下查询将更快、更高效: <?php require 'linking.php'; $query="SELECT `count` FROM `hit_count`"; if(@$query_run=mysqli_query($con,$query)) { $count=mysqli_data_seek($query_run,0); $fetch=mys

我试图将从count列获得的值与递增的值交换,以便
刷新我获得一个新的值增量值

如果您实际上不需要对该值执行任何操作,则运行以下查询将更快、更高效:

<?php
require 'linking.php';




$query="SELECT `count` FROM `hit_count`";

if(@$query_run=mysqli_query($con,$query))
{
  $count=mysqli_data_seek($query_run,0);
  $fetch=mysqli_fetch_row($query_run);
  $fetch_new=$fetch[0];
        $fetch_row=$fetch_new+1;
  echo $fetch_row;

  $fetch[0]=$fetch_row;
 $update_query="UPDATE `hit_count` SET `count`=$fetch_new";

  if(@$query_new =mysqli_query($update_query))
  {

  echo 'OK';
}
}

?>

更新查询中缺少$con链接,另外,不要将@与mysqli函数一起使用,它们会抑制错误,您不会希望这样

<?php
require 'linking.php';

$query="UPDATE `hit_count` SET `count`=`count`+1";

if(true === mysqli_query($con,$query))
{
    echo 'OK';
} else
{
    //do something with the error
}

您在更新中使用的变量不正确

  if($query_new = mysqli_query($con, $update_query))
  {
  echo 'OK';
  }
应该是

$update_query="UPDATE `hit_count` SET `count`=$fetch_new";

您正在将递增的值分配给$fetch\u行,但在更新查询中使用$fetch\u new,它仍然具有旧值

您需要更改行以使用$fetch\u行:


但是,我不建议这样做,而是建议查看T0xicCode的答案,因为这可能是一种更有效的方式来完成您想做的事情。

为什么要禁止来自mysqli_查询结果的消息?这可能会给你带来问题。另外,你为什么不直接发布am UPDATE hit\u count SET count=count+1??除此之外,做一个简单的选择,就像你现在做的,虽然我不明白为什么你要使用这么多函数,并重新分配一个100倍的变量,只是为了得到1个值。这应该是一个注释,因为这是一个增强建议,不是答案。@Zarathuztra它确实回答了这个问题:如何增加计数列的值?它没有,请看标题中他陈述问题的部分:我制定了一个逻辑,但它不起作用。他并没有要求提高性能。指出有缺陷的逻辑是可以的——尽管它应该以潜在的工作代码的形式呈现,并给出解释。竞争条件毕竟是典型的。@Zarathuztra我添加了代码,使之成为一个潜在的工作解决方案。对于如此简单的计算,在sql连接的客户端进行这些计算是自找麻烦的。在sql server上进行增量也可以保护您免受竞争条件的影响,因为增量是一个单一操作,而不是两个为什么最正确的答案不能获得更多的升级投票-\因为他在更新查询中没有通过$con,所以它从一开始就不会更新。不要在意其他答案指出的任何性能问题。@AD7six你只是猜测是什么意思?很明显。他需要函数中的链接,他在上面的另一个查询中使用了该链接。
$update_query="UPDATE `hit_count` SET `count`=$fetch_row";
$update_query="UPDATE `hit_count` SET `count`=$fetch_row";