2026, 새로운 도약을 시작합니다.

게시물 DB입력 문의 채택완료

2년 전 조회 2,035

안녕하세요

다른 곳에서 운영중인 그누보드에서

json 데이터로 수신해와서

별도로 또 게시물을 업로드 중인데요

DB에 입력은 잘되는데

게시물 번호를 생성을 못해서 인지

번호가 -1, -2 이렇게 나옵니다.. 삭제도 안됩니다. ㅠㅠ

소스는 아래와 같습니다.

Copy


// 게시물 업데이트

$sql = "INSERT INTO g5_write_test (wr_subject, wr_name, wr_1, wr_2, wr_3, wr_4, wr_5, wr_6, wr_7, wr_8, wr_9, wr_10, wr_content)

VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";

$stmt = $db->prepare($sql);

if ($stmt) {

    $stmt->bind_param("sssssssssssss", $wr_subject, $wr_name, $wr_1, $wr_2, $wr_3, $wr_4, $wr_5, $wr_6, $wr_7, $wr_8, $wr_9, $wr_10, $wr_content);

    if ($stmt->execute()) {

        $stmt->close();

        $db->close();

        echo '데이터가 성공적으로 입력되었습니다.';

    } else {

        echo '데이터 삽입 실패: ' . $stmt->error;

    }

} else {

    echo '쿼리 준비 실패: ' . $db->error;

}

} else {

    echo '데이터 수신 실패: 잘못된 데이터 형식';

}

sql_insert_id(); 함수를 이용하면 된다고 하는데

어떻게 넣는지 잘 모르겠습니다. ㅠ

고수님들의 도움 부탁드립니다.....

답변 1개

채택된 답변
+20 포인트
Copy


if($stmt->excute()) {

    $wr_id = sql_insert_id();

    //write_update.php 300 line 이하 참조

    sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");

}

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

감사합니다.
말씀해주신대로


if ($stmt->execute()) {

// 번호 삽입
$sql = "insert into $write_table set wr_num = " . ($w == 'r' ? "'$wr_num'" : "(SELECT IFNULL(MIN(wr_num) - 1, -1) FROM $write_table sq) ") ." ";

sql_query($sql);

$wr_id = sql_insert_id();

sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");

sql_query("update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$bo_table}'");

이렇게 했더니 DB에 게시물이 두개가 올라옵니다.
한개는 wr_id값만 들어오고 (완전 빈 게시물..)
한개는 wr_id , wr_num, wr_parent 셋다 정상적으로 올라옵니다.

뭐가 잘못된걸까요? ㅠㅠ
$stmt->excute()
이후에 //번호 삽입
$sql = "insert into $write_table set wr_num = " . ($w == 'r' ? "'$wr_num'" : "(SELECT IFNULL(MIN(wr_num) - 1, -1) FROM $write_table sq) ") ." ";

sql_query($sql);
위 2줄은 삭제하셔야 합니다.
감사합니다.

if ($stmt->execute()) {

$wr_id = sql_insert_id();

sql_query("update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");

sql_query("update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$bo_table}'");



말씀해주신게 이게 맞는지요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고