insert 관련 sql 쿼리 문법 오류
본문
안녕하세요.
회원 정보 입력 페이지를 만들때
qa01.php 정보 입력하고 다음 클릭 qa02.php 정보 입력 후
qa03.php 페이지에서 db 값을 입력할려고 합니다.
qa03.php 에
<?php echo $member["mb_id"]; ?> 입력해서 값을 얻으면 id 값이 정상적으로 나옵니다.
그런데...
에러가 뜨네요.
qa03.php 페이지
<form id="fregisterform" name="fregisterform" action="/bbs/qa_update.php" onsubmit="return fregisterform_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off">
<input type="hidden" name="mb_id" value="<?php echo $_POST['$member["mb_id"]']; ?>">
<input type="hidden" name="mb_qa01" value="<?php echo $_POST['mb_qa01']; ?>">
<input type="hidden" name="mb_qa02" value="<?php echo $_POST['mb_qa02']; ?>">
<td class="qa01-a01">
<input type="radio" name="mb_qa03" value="예"<?php echo ($member['mb_qa03'] == "예") ? " checked" : "";?> required > 예
<br><br><input type="radio" name="mb_qa03" value="아니오"<?php echo ($member['mb_qa03'] == "아니오") ? " checked" : "";?>> 아니오
</td>
중간생략
<div class="btn_confirm">
<a href="/bbs/qa02.php" class="btn_cancel">이전</a>
<input type="submit" value="<?php echo $w==''?'완료':'완료'; ?>" id="btn_submit" class="btn_submit" accesskey="s">
</div>
이렇게 입력했고
qa_update.php 파일에는
<?php
include_once('./_common.php');
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
include_once(G5_LIB_PATH.'/register.lib.php');
include_once(G5_LIB_PATH.'/mailer.lib.php');
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
$mb_id = isset($_POST['mb_id']) ? trim($_POST['mb_id']) : "";
$mb_qa01 = isset($_POST['mb_qa01']) ? trim($_POST['mb_qa01']) : "";
$mb_qa02 = isset($_POST['mb_qa02']) ? trim($_POST['mb_qa02']) : "";
$mb_qa03 = isset($_POST['mb_qa03']) ? trim($_POST['mb_qa03']) : "";
$sql = " insert into {$g5['member_addinfo']}
set mb_id = '{$mb_id}',
mb_update_ip = '{$_SERVER['REMOTE_ADDR']}',
mb_qa01 = '{$mb_qa01}',
mb_qa02 = '{$mb_qa02}',
mb_qa03 = '{$mb_qa03}'
";
sql_query($sql,true);
?>
중간생략
이렇게 했더니
insert into set mb_id = '', mb_update_ip = '::1', mb_qa01 = '없음', mb_qa02 = '예', mb_qa03 = '아니오'
1064 : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'set mb_id = '', mb_update_ip = '::1', ...' at line 2
error file : /bbs/qa_update.php
이런 에러 문구가 뜨네요.
그리고, mb_id 값도 없구요.
어떻게 하면 될까요?
고수님들의 조언 부탁드립니다.
감사합니다.
!-->!-->
답변 3
$_POST[] 값으로 받기 위해서는 안의 값이 제대로 변수형태로 들어가있어야 합니다.
update 페이지에서 echo "<pre>".print_r($_POST)."</pre>"; exit; 해보시면 넘어간 모든 POST값을 확인할수 있을거에요
아마 100% mb_id값은 없을겁니다.
mb_id값을 그대로 가져오기 위해서는
<input type="hidden" name="mb_id" value="<?php echo $_POST['$member["mb_id"]']; ?>">
이구문을
<input type="hidden" name="mb_id" value="<?php echo $member["mb_id"]; ?>">
으로 하시면해결될거 같으네요
table 정보가 없어서 에러가 난 것으로 보입니다.
A 테이블에 insert 쿼리 => 'insert into A ~ '
즉, $g5['member_addinfo'] 가 빈 값 상태이니,
이 부분을 확인해보는 것이 좋을 듯 싶습니다.
$g5['member_addinfo'] <--- 이 값이 어느화일에 설정 되어있나요?
name="mb_id" value="<?php echo $_POST['$member["mb_id"]']; ?>" <--- $_POST['mb_id'] 같은데요?
$member["mb_id"] 이것은 로그인한 후 자신의 mb_id 값인데 저렇게 사용한다는 것이 말이 안되는 코드 입니다