테스트 사이트 - 개발 중인 베타 버전입니다

mysql로 게시판을 임시로 제작을 해보았는데 글등록 오류 채택완료

qoqofh 4년 전 조회 1,935

</p>

<p><?php

    require_once("../data/dbconfig.php");</p>

<p>    //$_POST['bno']이 있을 때만 $bno 선언

    if(isset($_POST['bno'])) {

        $bNo = $_POST['bno'];

    }</p>

<p>    //bno이 없다면(글 쓰기라면) 변수 선언

    if(empty($bNo)) {

        $bID = $_POST['bID'];

        $date = date('Y-m-d H:i:s');

    }</p>

<p>    //항상 변수 선언

    $bPassword = $_POST['bPassword'];

    $bTitle = $_POST['bTitle'];

    $bContent = $_POST['bContent'];</p>

<p>//글 수정

if(isset($bNo)) {

    //수정 할 글의 비밀번호가 입력된 비밀번호와 맞는지 체크

    $sql = 'select count(b_password) as cnt from board_free where b_password=password("' . $bPassword . '") and b_no = ' . $bNo;

    $result = $db_conn->query($sql);

    $row = $result->fetch_assoc();

    

    //비밀번호가 맞다면 업데이트 쿼리 작성

    if($row['cnt']) {

        $sql = 'update board_free set b_title="' . $bTitle . '", b_content="' . $bContent . '" where b_no = ' . $bNo;

        $msgState = '수정';

    //틀리다면 메시지 출력 후 이전화면으로

    } else {

        $msg = '비밀번호가 맞지 않습니다.';

    ?>

        <script>

            alert("<?php echo $msg?>");

            history.back();

        </script>

    <?php

        exit;

    }

    

//글 등록

} else {

    $sql = 'insert into board_free (b_no, b_title, b_content, b_date, b_hit, b_id, b_password) values(null, "' . $bTitle . '", "' . $bContent . '", "' . $date . '", 0, "' . $bID . '", password("' . $bPassword . '"))';

    $msgState = '등록';

}</p>

<p>//메시지가 없다면 (오류가 없다면)

if(empty($msg)) {

    $result = $db_conn->query($sql);

    

    //쿼리가 정상 실행 됐다면,

    if($result) {

        $msg = '정상적으로 글이 ' . $msgState . '되었습니다.';

        if(empty($bNo)) {

            $bNo = $db_conn->insert_id;

        }

        $replaceURL = './view.php?bno=' . $bNo;

    } else {

        $msg = '글을 ' . $msgState . '하지 못했습니다.';

?>

        <script>

            alert("<?php echo $msg?>");

            history.back();

        </script>

<?php

        exit;

    }

}</p>

<p>?>

<script>

    alert("<?php echo $msg?>");

    location.replace("<?php echo $replaceURL?>");

</script></p>

<p>

 

게시판을 제작해 보았는데, 글을 등록하지 못했다고 계속 뜨는 상태여서요....

 

혹시 코드상에 문제가 있는걸까요?

 

처음에 mysqli쿼리를 dbconfig에서 못찾아서, daconfig.php에서 mysqli_close($db_conn); 이부분을 주석처리한 상태입니다.

 

질문이 어찌보면 광범위할 수 있는데, 가늠이라도 잡기위해 질문을 드려봅니다.

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

답변 2개

채택된 답변
+20 포인트
//메시지가 없다면 (오류가 없다면)
if(empty($msg)) {
    $result = $db_conn->query($sql);
    if( !$result) {          
         mysqli_connect_error();
    }
    //쿼리가 정상 실행 됐다면,

추가해서 query 문에 에러가 있는지 확인해 보세요.

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

답변에 대한 댓글 2개

q
qoqofh
4년 전
쿼리에러는 없는것으로 나오는데 php 버전문제인지..... 참 어렵네요...ㅋ
엑스엠엘
4년 전
DB에는 추가가 되었나 한번 확인해 보세요.

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

$db_con이 어디서 받아 오나요?

우선은 mysqli_query()문 에러 메시지를 출력해 보세요.

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

답변에 대한 댓글 3개

q
qoqofh
4년 전
require_once("../data/dbconfig.php");

여기서 불러와지고 있습니다.

[code]
<?php
header('Content-Type: text/html; charset=UTF-8');

$db_conn = mysqli_connect("localhost", "아이디", "비밀번호", "DB");
if (!$db_conn) {
$error = mysqli_connect_error();
$errno = mysqli_connect_errno();
print "$errno: $error\n";
exit();
}
//mysqli_close($db_conn);
?>
[/code]
엑스엠엘
4년 전
질문 본문에 있는 소스가 이 파일을 include하나요?
q
qoqofh
4년 전
네 맞습니다.

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

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

로그인