更新表中所有行中的一列

Moh*_*ini 22 mysql updating rows

我想在一个表中的所有行中更新一个相同的列,有人可以帮我一个更新表吗?只有一个输入字段应该更新所有行值.这段代码不起作用,我知道索引和数组有问题.

<?php
    <form method="post" dir="rtl" name="maxcharfield" >                     
        <textarea onKeyDown="textCounter(this,'progressbar1',300)" 
          onKeyUp="textCounter(this,'progressbar1',300)" 
          onFocus="textCounter(this,'progressbar1',300)"  
            style="font-family:'B_yekan';" id="text" name="text" rows="0" cols="0" class="required"></textarea>
        <div class="cleaner h10"></div> 

        <div style="font-family:'B_yekan';" dir="rtl" id="progressbar1" class="progress" ></div>
        <script>textCounter(document.getElementById("maxcharfield"),"progressbar1",100)</script>    

        <input class="styled-button-8" style="margin-top:10px; float:right; margin-right:50px; font-size: 14px;  padding: 5px 14px;" type="submit" value="save" name="Submit"   />
        <input style="font-family:'B_yekan';" type="reset" value="reset" id="reset" name="reset" class="submit_btn float_l" />

    </form>

<?php
// for updating Check if button name "Submit" is active, do this 
if(isset($_POST['Submit']) && $_POST['Submit'] == 'save')
    {
        $sql1="UPDATE `".$tbl_name."` SET `board`='".$_REQUEST['text']."'  ";
                            $result1=mysql_query($sql1);
     }

    }   
?>
Run Code Online (Sandbox Code Playgroud)

Dav*_*vid 53

你的解决方案太复杂了.为了更新每条记录,您尝试采用的方法是:

  1. 选择所有记录.
  2. 获取每条记录的ID.
  3. 循环访问ID.
  4. 按该ID更新每条记录.

UPDATE语法有一个更简单的方法来做到这一点.您不需要为语句提供WHERE子句UPDATE.如果没有该子句,它将默认更新表中的每条记录:

UPDATE TableName SET `board`='value'
Run Code Online (Sandbox Code Playgroud)

此外,请注意您的代码中存在SQL注入漏洞.通过 $_REQUEST['text']直接在SQL查询中使用,您允许任何用户将SQL代码发送到您的查询.然后,您的代码会执行他们发送给您的任 这可能会使他们损坏或删除您的数据,甚至获得对您的服务器的管理访问权限.

首先,请停止使用mysql_*功能.PHP已弃用这些,不应再使用它们.有一个mysqli_替代他们.除此之外,在SQL查询中使用它们之前,请使用mysqli_real_escape_string()函数来清理输入.最后,使用预准备语句而不是将值直接连接到SQL字符串中.