표의 모든 행에 있는 하나의 열 업데이트
나는 하나의 테이블의 모든 행에 있는 동일한 열을 업데이트하고 싶습니다. 누군가 나에게 테이블을 업데이트하는 방법을 알려줄 수 있습니까? 모든 행 값을 업데이트해야 하는 입력 필드는 하나뿐입니다. 이 코드가 작동하지 않고 인덱스와 배열에 문제가 있다는 것을 알고 있습니다.
<?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);
}
}
?>
해결책을 너무 복잡하게 만들고 있습니다.모든 레코드를 업데이트하기 위해 사용자가 시도하는 접근 방식은 다음과 같습니다.
- 모든 레코드를 선택합니다.
- 각 레코드의 ID를 가져옵니다.
- ID를 순환합니다.
- 해당 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
'programing' 카테고리의 다른 글
두 XML 문서를 어떻게 비교하시겠습니까? (0) | 2023.11.04 |
---|---|
jQuery: 속성이 값보다 큰 모든 요소 선택 (0) | 2023.11.04 |
Spring security - (0) | 2023.11.04 |
Hi/Lo 알고리즘이란? (0) | 2023.11.04 |
ORA-12557 TNS: 프로토콜 어댑터를 로드할 수 없음 (0) | 2023.11.04 |