2022. 10. 5. 05:37ㆍProgram/PHP
119_PHP MySQL 데이터의 값 변경하기 UPDATE
[요약]
- 레코드의 값을 변경하는 명령문 UPDATE 에 대해 알아보자
데이터베이스에 입력한 데이터를 수정하는 일은 매우 자주 발생한다.
게임을 예로 들면 경험치를 충족하여 다음 레벨로 데이터를 변경하거나 회원이 개명하여 회원명을 변경하기 원하는 등의 다양한 상황이 발생하게 된다.
[UPDATE 문 사용 방법]
UPDATE 테이블명 SET 필드명 값 조건
조건문을 사용하지 않으면 테이블의 모든 레코드가 동일하게 변경되기 때문에 UPDATE문을 사용할 때는 조심해야 한다.
다음은 myMemberID가 5번인 고객의 휴대전화번호를 0으로 변경하는 예제이다.
[예제: 122-1_update.php ]
<?php
include $_SERVER['DOCUMENT_ROOT'] . '/php/108-2_connectDB.php';
$sql = "UPDATE myMember SET phone = 0 WHERE myMemberID = 5";
$result = $dbConnect->query($sql);
if ($result) {
echo "변경 성공";
echo "<br>";
$sql = "SELECT phone FROM myMember WHERE myMemberID = 5";
$result = $dbConnect->query($sql); // 쿼리 송신
$memberInfo = $result->fetch_array(MYSQLI_ASSOC);
echo "회원번호 5의 휴대폰번호는 " . $memberInfo['phone'];
} else {
echo "변경 실패";
}
?>
실행결과
UPDATE문을 사용하여 한 번에 여러 필드의 값을 변경할 수 있다.
5번 회원의 휴대전화번호를 원래의 값으로 변경하고, 아이디를 yuna에서 yuna-kim으로 변경해보자.
쿼리문은 다음과 같다.
UPDATE myMember SET phone = '010-1234-5678', userId = 'yuna-kim' WHERE myMemberID = 5;
필드에 값을 대입한 후 ','로 구분하여 변경할 필드를 적고 값을 대입한다.
다음은 위의 쿼리문을 활용한 예제이다.
[예제: 122-2_updateSetTwo.php ]
<?php
include $_SERVER['DOCUMENT_ROOT'] . '/php/108-2_connectDB.php';
$sql = "UPDATE myMember SET phone = '010-1234-5678', userId = 'yuna-kim' WHERE myMemberID = 5;";
$result = $dbConnect->query($sql);
if ($result) {
echo "변경 성공";
echo "<br>";
$sql = "SELECT userId, phone FROM myMember WHERE myMemberID = 5";
$result = $dbConnect->query($sql); // 쿼리 송신
$memberInfo = $result->fetch_array(MYSQLI_ASSOC);
echo "회원번호 5의 휴대폰번호는 " . $memberInfo['phone'];
echo "<br>";
echo "회원번호 5의 변경되 ID는 " . $memberInfo['userId'];
} else {
echo "변경 실패";
}
?>
실행결과
기존 입력된 값을 기준으로 값을 더하는 방법도 있다.
이것을 테스트하기 위해 모든 회원의 휴대전화번호를 0으로 변경한다.
모든 회원의 값을 변경하므로 조건문인 WHERE문을 사용하지 않는다.
[예제: 122-3_updateAllZero.php ]
<?php
include $_SERVER['DOCUMENT_ROOT'] . '/php/108-2_connectDB.php';
$sql = "UPDATE myMember SET phone = 0;";
$result = $dbConnect->query($sql);
if ($result) {
echo "변경 성공";
echo "<br>";
$sql = "SELECT myMemberID, phone FROM myMember";
$result = $dbConnect->query($sql); // 쿼리 송신
$dataCount = $result->num_rows;
for ($i = 0; $i < $dataCount; $i++) {
$memberInfo = $result->fetch_array(MYSQLI_ASSOC);
echo "회원번호 {$memberInfo['myMemberID']}의 ";
echo "휴대폰번호는 " . $memberInfo['phone'];
echo "<br>";
}
} else {
echo "변경 실패";
}
?>
실행결과
모든 회원의 휴대전화번호를 0으로 만들었따.
다음은 휴대전화번호의 값에 3을 더하는 쿼리문이다.
UPDATE myMember SET phone = phone + 3;
필드를 지정한 후 대입하는 곳에 필드명을 입력하면 기존의 필드에 있는 값을 출력한다.
다음은 휴대전화번호 값에 3을 더하는 예제이다.
[예제: 122-4_updateAllPlus.php ]
<?php
include $_SERVER['DOCUMENT_ROOT'] . '/php/108-2_connectDB.php';
$sql = "UPDATE myMember SET phone = phone + 3;";
$result = $dbConnect->query($sql);
if ($result) {
echo "변경 성공";
echo "<br>";
$sql = "SELECT myMemberID, phone FROM myMember";
$result = $dbConnect->query($sql); // 쿼리 송신
$dataCount = $result->num_rows;
for ($i = 0; $i < $dataCount; $i++) {
$memberInfo = $result->fetch_array(MYSQLI_ASSOC);
echo "회원번호 {$memberInfo['myMemberID']}의 <br>";
echo "휴대폰번호는 " . $memberInfo['phone'];
echo "<br>";
echo "<br>";
}
} else {
echo "변경 실패";
}
?>
실행결과
필드를 지정한 후 대입하는 곳에 필드명을 입력하면 기존의 필드에 있는 값을 출력한다.
그 값에 3을 더한 값이 대입된다.
실제로 휴대전화번호가 0이 되거나 3이 되는 일은 없지만, 기존의 필드값을 필드에 대입할 수 있다는 것을 알아보았다.
다시 모든 회원의 휴대전화번호를 '010-1234-5678'로 변경하도록 하자.
사용하는 쿼리문은 다음과 같다.
UPDATE myMember SET phone = '010-1234-5678';
[예제: 122-5_updateAll.php ]
<?php
include $_SERVER['DOCUMENT_ROOT'] . '/php/108-2_connectDB.php';
$sql = "UPDATE myMember SET phone = '010-1234-5678';";
$result = $dbConnect->query($sql);
if ($result) {
echo "변경 성공";
echo "<br>";
$sql = "SELECT myMemberID, phone FROM myMember";
$result = $dbConnect->query($sql); // 쿼리 송신
$dataCount = $result->num_rows;
for ($i = 0; $i < $dataCount; $i++) {
$memberInfo = $result->fetch_array(MYSQLI_ASSOC);
echo "회원번호 {$memberInfo['myMemberID']}의 휴대폰번호는 " . $memberInfo['phone'];
echo "<br>";
}
} else {
echo "변경 실패";
}
?>
실행결과
초보자를 위한 PHP 200제
김태영 지음 | 정보문화사
'Program > PHP' 카테고리의 다른 글
[PHP] MySQL 테이블 초기화하기 TRUNCATE (0) | 2022.10.05 |
---|---|
[PHP] MySQL 데이터 삭제하기 DELETE (0) | 2022.10.05 |
[PHP] MySQL 불러올 레코드 수 지정하기 LIMIT (0) | 2022.10.04 |
[PHP] MySQL 데이터 정렬하기 ORDER BY (0) | 2022.10.04 |
[PHP] MySQL 특정 조건의 데이터 불러오기 WHERE (0) | 2022.10.04 |