为什么运行此代码后,我的 SQL 表中的数据会被删除?

我有这个我想运行的代码,它连接到我的数据库,它用来显示表上的值,但每次我执行 UPDATE 查询时。


它用零更新行的其余部分,除了我选择的那个。我想保留我的号码,但只更新我选择的号码,但我不知道怎么做!


我用带有零 (0) 的一行初始化了表,然后使用我的网页应用程序我想更改这些值。


但是,如果我在其余列上有另一个值并且我想更改此值,则其余值为零(表的初始状态)(我认为我不知道如何更好地解释它)


<?php 

                      $showData = ("SELECT * FROM horario");

                      if ($new_user_activity['data'] == 'Seg' ) {

                          $segHora = $new_user_activity['horas'];

                      }

                          $sql = ("UPDATE horario SET seg=$segHora WHERE id=1");

                          if(!mysqli_query($conn,$sql)) {

                            echo("ERRO NA QUERY" );

                          }

                          else {

                            if(mysqli_query($conn,$sql)){

                              $sqlData = mysqli_query($conn,$showData);

                              while ($row = mysqli_fetch_array($sqlData,MYSQLI_ASSOC)){

                              echo($row['seg']);

                              }     


                        }


                        }


            ?>

它希望将我的值与同一行的其他列保持一致!

http://img4.mukewang.com/6184bbb2000117b509610382.jpg

达令说
浏览 193回答 2
2回答

回首忆惘然

您显示的此代码不负责重置行。一定有别的事情在做。某处还有另一个更新,可能是数据库上的触发器,但它不是来自您发布的代码示例。关于您的代码,有几处错误,其他人已经指出。我想再添加几个确保在将数据插入 MySQL 之前对数据进行 SANITIZE。对于初学者,请查看 PDO 和bindparam。除此之外,使用 (int) 将变量转换为整数。只有在有新用户活动时才会进行更新。代码:&nbsp;if ($new_user_activity['data'] == 'Seg') {&nbsp; &nbsp; &nbsp;$segHora = (int)$new_user_activity['horas'];&nbsp; &nbsp; &nbsp;$sql = ("UPDATE horario SET seg=$segHora WHERE id=1");&nbsp; &nbsp; &nbsp;if (!mysqli_query($conn, $sql)) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo ("ERRO NA QUERY");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return; // or exit, if this is not a function&nbsp; &nbsp; &nbsp;}&nbsp;}&nbsp;$showData = ("SELECT * FROM horario");&nbsp;$sqlData = mysqli_query($conn, $showData);&nbsp;while ($row = mysqli_fetch_array($sqlData, MYSQLI_ASSOC)) {&nbsp; &nbsp; &nbsp;echo ($row['seg']);&nbsp;}

慕码人8056858

似乎该表正在重置每个查询中每列中的所有值。这可能意味着每次运行代码时,您设置的数据库连接首先用零更新每一列,然后插入新数据。我会检查您的连接脚本。
打开App,查看更多内容
随时随地看视频慕课网APP