반응형
SQL-IF EXISTS UPDATE ELSE INSERT INTO
내가하려는 INSERT
것은 내 데이터베이스의 구독자이지만 행, 새 행 IF EXISTS
이어야 UPDATE
합니다 ELSE INSERT INTO
.
내가 처음과 데이터베이스에 연결 당연히 , 및 URL 문자열에서.GET
$name
$email
$birthday
$con=mysqli_connect("localhost","---","---","---");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$name=$_GET['name'];
$email=$_GET['email'];
$birthday=$_GET['birthday'];
이것은 작동하지만 새 행을 추가합니다.
mysqli_query($con,"INSERT INTO subs (subs_name, subs_email, subs_birthday)
VALUES ('$name', '$email', '$birthday')");
mysqli_close($con);
내가 시도한 것은 다음과 같습니다.
mysqli_query($con,"INSERT INTO subs (subs_name, subs_email, subs_birthday)
VALUES '$name', '$email', '$birthday'
ON DUPLICATE KEY UPDATE subs_name = VALUES($name), subs_birthday = VALUES($birthday)");
mysqli_close($con);
과
mysqli_query($con,"IF EXISTS (SELECT * FROM subs WHERE subs_email='$email')
UPDATE subs SET subs_name='$name', subs_birthday='$birthday' WHERE subs_email='$email'
ELSE
INSERT INTO subs (subs_name, subs_email, subs_birthday) VALUES ('$name', '$email', '$birthday')");
mysqli_close($con);
과
mysqli_query($con,"IF NOT EXISTS(SELECT * FROM subs WHERE subs_email='$email')
Begin
INSERT INTO subs (subs_name, subs_email, subs_birthday)
VALUES ('$name', '$email', '$birthday')
End");
mysqli_close($con);
그러나 그들 중 누구도 작동하지 않습니다. 내가 뭘 잘못하고 있습니까?
어떤 도움이라도 대단히 감사합니다!
아직 존재하지 않는 경우 열에 대한
UNIQUE
제한 조건 을 작성하십시오subs_email
.ALTER TABLE subs ADD UNIQUE (subs_email)
사용
INSERT ... ON DUPLICATE KEY UPDATE
:INSERT INTO subs (subs_name, subs_email, subs_birthday) VALUES (?, ?, ?) ON DUPLICATE KEY UPDATE subs_name = VALUES(subs_name), subs_birthday = VALUES(subs_birthday)
UPDATE 절에서 VALUES (col_name) 함수를 사용하여 INSERT ... ON DUPLICATE KEY UPDATE-dev.mysql.com 의 INSERT 부분에서 열 값을 참조 할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/15383852/sql-if-exists-update-else-insert-into
반응형
'developer tip' 카테고리의 다른 글
자바 스크립트 (+) 기호는 변수 합계를 제공하는 대신 연결합니다. (0) | 2020.10.24 |
---|---|
스토리 보드 팝 오버를 닫는 방법 (0) | 2020.10.24 |
ListView 용 Android 사용자 지정 행 항목 (0) | 2020.10.23 |
Crashlytics가 iPhone에서 오류 보고서를 보내지 않음 (0) | 2020.10.23 |
텍스트 상자의 텍스트 끝에 커서 설정 (0) | 2020.10.23 |