programing

표의 모든 행에 있는 하나의 열 업데이트

padding 2023. 11. 4. 10:17
반응형

표의 모든 행에 있는 하나의 열 업데이트

나는 하나의 테이블의 모든 행에 있는 동일한 열을 업데이트하고 싶습니다. 누군가 나에게 테이블을 업데이트하는 방법을 알려줄 수 있습니까? 모든 행 값을 업데이트해야 하는 입력 필드는 하나뿐입니다. 이 코드가 작동하지 않고 인덱스와 배열에 문제가 있다는 것을 알고 있습니다.

<?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);
     }

    }   
?>

해결책을 너무 복잡하게 만들고 있습니다.모든 레코드를 업데이트하기 위해 사용자가 시도하는 접근 방식은 다음과 같습니다.

  1. 모든 레코드를 선택합니다.
  2. 각 레코드의 ID를 가져옵니다.
  3. ID를 순환합니다.
  4. 해당 ID로 각 레코드를 업데이트합니다.

UPDATE구문은 이 작업을 수행하는 훨씬 더 쉬운 방법입니다.A를 공급할 필요는 없습니다.WHERE에 대한 조항.UPDATE진술.이 조항이 없으면 기본적으로 테이블의 모든 레코드가 업데이트됩니다.

UPDATE TableName SET `board`='value'

또한 코드에 SQL 주입 취약성이 있음을 유의하시기 바랍니다.사용함으로써$_REQUEST['text']SQL 쿼리에서 직접 사용자가 쿼리에 SQL 코드를 보낼 수 있습니다.그러면 코드가 전송하는 모든 것을 실행합니다.이를 통해 사용자의 데이터를 손상시키거나 삭제할 수 있으며, 서버에 대한 관리 권한까지 얻을 수 있습니다.

우선 사용을 중지해 주시기 바랍니다.mysql_*기능들.PHP는 그것들을 더 이상 사용하지 말아야 합니다.그들을 대신할 사람이 있습니다.그 외에도 SQL 쿼리에서 입력을 사용하기 전에 이 기능을 사용하여 입력을 검사합니다.마지막으로 SQL 문자열에 값을 직접 연결하는 대신 준비된 문을 사용합니다.

위에 주어진Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.오류를 범실.

하나의 열 아래 행에 있는 모든 값을 업데이트하는 하나의 쿼리입니다.

UPDATE TableName SET `board`='value' WHERE `id` > 1;

그냥 붙이기만 하면 됩니다.WHERE조항, 만약 이것이 CMS에 있다면, 당신은 이것의 변형을 얻을 것입니다.id, 그럴 수도 있습니다entity_id아니면,post_id.

언급URL : https://stackoverflow.com/questions/16066202/updating-one-column-in-all-rows-in-a-table

반응형