··조회 58,218
한줄답변 에러.... ㅠ.-
안녕하세여...
우선 강좌가 넘 좋네여.. 근데 제가 php로 만드는데
한줄답변에서 에러땜시 고민하다가 이렇게 글 올립니다.
우선 답변 처리하는 부분에서 쿼리 부분에서 에러가
나길래 값을 다 찍어봤는데 다 불러옵니다.
151512121111121212121211080727311220.117.161.137You have an error in your SQL syntax near '(number,parent,guest_name,password,comment,ip,writetime) values('15','15' at line 1insert into (number,parent,guest_name,password,comment,ip,writetime) values('15','15','1212','1111','12121212121','220.117.161.137',1080727311)
이렇게 에러가 납니다...
소스는
<?
// 필요한 설정이 담겨있는 config.php를 include 시킨다.
include "../admin/config.php";
// Mysql Server에 접속한다.
$conn = mysql_pconnect( $set_host, $set_user, $set_password );
mysql_select_db( $set_dbname );
$tablename = $simplereply;
//입력폼(write.php)에서 전송된 내용을 변수에 담습니다.
$guest_name = addslashes($guest_name);
$password = addslashes($password);
$comment = addslashes($comment);
echo $number;
echo $parent;
echo $guest_name;
echo $password;
echo $comment;
//디폴트 값이 필요한 변수에는 디폴트 값을 넣습니다.
$writetime = time();
$ip = getenv("REMOTE_ADDR");
echo $writetime;
echo $ip;
//SQL 명령을 이용해 입력받은 내용과 디폴트값 등을 MySQL에 입력(insert)합니다.
$sql = "insert into $tablename (number,parent,guest_name,password,comment,ip,writetime)
values('$number','$parent','$guest_name','$password','$comment','$ip',$writetime)";
mysql_query($sql) or die (mysql_error().$sql);
//글 입력이 완료되면 보기 페이지로 자동 이동하도록 합니다
if ($msg=='') {
$msg = "성공적으로 등록되었습니다";
echo " <html><head>
<script name=javascript>
if('$msg' != '') {
self.window.alert('$msg');
}
location.href='view.php?id=$id&page=$page&number=$number&src_name=$src_name&src_value=$src_value';
</script>
</head>
</html> ";
} else {
echo " <html><head>
<script name=javascript>
if('$msg' != '') {
self.window.alert('$msg');
}
history.go(-1);
</script>
</head>
</html> ";
}
?>
이부분이 답글 저장하는 소스입니다..
create table simplereply (
number int(8) not null auto_increment primary key,
parent int(8) not null,
guest_name char(12) not null,
pwd char(16) not null,
comment text not null,
ip char(15) not null,
writetime int(8) not null
);
이부분은 테이블 구조입니다...
view 부분은
<form method=post name=write action='simplereply_ok.php' onsubmit="return check_comment_submit(this)">
<input type=hidden name=id value='<?=$id?>'>
<input type=hidden name=page value='<?=$page?>'>
<input type=hidden name=number value='<?=$number?>'>
<input type=hidden name=parent value='<?=$number?>'>
<input type=hidden name=src_name value='<?=$src_name?>'>
<input type=hidden name=src_value value='<?=$src_value?>'>
<?
while($array2 = mysql_fetch_array($result2)) {
$cmt_number = $array2[number]; // 글 번호
$cmt_name = stripslashes($array2[guest_name]); // 간단한 답글 내용
$cmt_comment = nl2br(stripslashes($array2[comment])); // 간단한 답글 내용
$cmt_date = date('Y-m-d',$array2[writetime]); // 글쓴 날짜
$cmt_time = date('H:i:s',$array2[writetime]); // 글쓴 시간
$a_simple_del = "<a onfocus='blur();' href=simplereply_del.php?id=$id&number=$number&page=$page&replyno=$replyno&src_name=$src_name&src_value=$src_value&cmt_number=$cmt_number>";
?>
<tr>
<td><? echo $cmt_name; ?></td>
</tr>
<tr>
<td><? echo $cmt_comment; ?></td>
</tr>
<tr>
<td><? echo $cmt_date; ?> <? $cmt_time; ?></td>
</tr>
<?
}
?>
<tr>
<td class="gray_130">
<img src="../img/no.gif" width="18" height="1"><img src="../img/t_name.gif" width="24" height="7" align="absmiddle">
<input type="text" name="guest_name" maxlength="10" style="width:60px;"class="input2">
<img src="../img/t_pw.gif" width="50" height="7" align="absmiddle">
<input type="password" name="password" maxlength="10" style="width:60px;"class="input2">
<br>
<img src="../img/t_comment.gif" width="42" height="7" align="absmiddle"> <input type="text" name="comment" style="width:450px;" class="input2">
<input type="image" src="../img/s_ok.gif" width="30" height="18" align="absmiddle" border="0" name="replybn" id="replybn"></td>
</tr>
</form>
</table>
이렇게 처리했구여 위에서
$simplereply_id = "simplereply"; // 간단한 답글 테이블 이름 지정
$query2 = "select * from simplereply where parent=$number order by number"; // 간단한 답글을 불러옴
$result2 = mysql_query($query2) or die (mysql_error());
이렇게 처리했습니다....
제가 하다가 이렇게 글을 남기게 되었습니다..
한번 봐주세요... ㅠ.-
우선 강좌가 넘 좋네여.. 근데 제가 php로 만드는데
한줄답변에서 에러땜시 고민하다가 이렇게 글 올립니다.
우선 답변 처리하는 부분에서 쿼리 부분에서 에러가
나길래 값을 다 찍어봤는데 다 불러옵니다.
151512121111121212121211080727311220.117.161.137You have an error in your SQL syntax near '(number,parent,guest_name,password,comment,ip,writetime) values('15','15' at line 1insert into (number,parent,guest_name,password,comment,ip,writetime) values('15','15','1212','1111','12121212121','220.117.161.137',1080727311)
이렇게 에러가 납니다...
소스는
<?
// 필요한 설정이 담겨있는 config.php를 include 시킨다.
include "../admin/config.php";
// Mysql Server에 접속한다.
$conn = mysql_pconnect( $set_host, $set_user, $set_password );
mysql_select_db( $set_dbname );
$tablename = $simplereply;
//입력폼(write.php)에서 전송된 내용을 변수에 담습니다.
$guest_name = addslashes($guest_name);
$password = addslashes($password);
$comment = addslashes($comment);
echo $number;
echo $parent;
echo $guest_name;
echo $password;
echo $comment;
//디폴트 값이 필요한 변수에는 디폴트 값을 넣습니다.
$writetime = time();
$ip = getenv("REMOTE_ADDR");
echo $writetime;
echo $ip;
//SQL 명령을 이용해 입력받은 내용과 디폴트값 등을 MySQL에 입력(insert)합니다.
$sql = "insert into $tablename (number,parent,guest_name,password,comment,ip,writetime)
values('$number','$parent','$guest_name','$password','$comment','$ip',$writetime)";
mysql_query($sql) or die (mysql_error().$sql);
//글 입력이 완료되면 보기 페이지로 자동 이동하도록 합니다
if ($msg=='') {
$msg = "성공적으로 등록되었습니다";
echo " <html><head>
<script name=javascript>
if('$msg' != '') {
self.window.alert('$msg');
}
location.href='view.php?id=$id&page=$page&number=$number&src_name=$src_name&src_value=$src_value';
</script>
</head>
</html> ";
} else {
echo " <html><head>
<script name=javascript>
if('$msg' != '') {
self.window.alert('$msg');
}
history.go(-1);
</script>
</head>
</html> ";
}
?>
이부분이 답글 저장하는 소스입니다..
create table simplereply (
number int(8) not null auto_increment primary key,
parent int(8) not null,
guest_name char(12) not null,
pwd char(16) not null,
comment text not null,
ip char(15) not null,
writetime int(8) not null
);
이부분은 테이블 구조입니다...
view 부분은
<form method=post name=write action='simplereply_ok.php' onsubmit="return check_comment_submit(this)">
<input type=hidden name=id value='<?=$id?>'>
<input type=hidden name=page value='<?=$page?>'>
<input type=hidden name=number value='<?=$number?>'>
<input type=hidden name=parent value='<?=$number?>'>
<input type=hidden name=src_name value='<?=$src_name?>'>
<input type=hidden name=src_value value='<?=$src_value?>'>
<?
while($array2 = mysql_fetch_array($result2)) {
$cmt_number = $array2[number]; // 글 번호
$cmt_name = stripslashes($array2[guest_name]); // 간단한 답글 내용
$cmt_comment = nl2br(stripslashes($array2[comment])); // 간단한 답글 내용
$cmt_date = date('Y-m-d',$array2[writetime]); // 글쓴 날짜
$cmt_time = date('H:i:s',$array2[writetime]); // 글쓴 시간
$a_simple_del = "<a onfocus='blur();' href=simplereply_del.php?id=$id&number=$number&page=$page&replyno=$replyno&src_name=$src_name&src_value=$src_value&cmt_number=$cmt_number>";
?>
<tr>
<td><? echo $cmt_name; ?></td>
</tr>
<tr>
<td><? echo $cmt_comment; ?></td>
</tr>
<tr>
<td><? echo $cmt_date; ?> <? $cmt_time; ?></td>
</tr>
<?
}
?>
<tr>
<td class="gray_130">
<img src="../img/no.gif" width="18" height="1"><img src="../img/t_name.gif" width="24" height="7" align="absmiddle">
<input type="text" name="guest_name" maxlength="10" style="width:60px;"class="input2">
<img src="../img/t_pw.gif" width="50" height="7" align="absmiddle">
<input type="password" name="password" maxlength="10" style="width:60px;"class="input2">
<br>
<img src="../img/t_comment.gif" width="42" height="7" align="absmiddle"> <input type="text" name="comment" style="width:450px;" class="input2">
<input type="image" src="../img/s_ok.gif" width="30" height="18" align="absmiddle" border="0" name="replybn" id="replybn"></td>
</tr>
</form>
</table>
이렇게 처리했구여 위에서
$simplereply_id = "simplereply"; // 간단한 답글 테이블 이름 지정
$query2 = "select * from simplereply where parent=$number order by number"; // 간단한 답글을 불러옴
$result2 = mysql_query($query2) or die (mysql_error());
이렇게 처리했습니다....
제가 하다가 이렇게 글을 남기게 되었습니다..
한번 봐주세요... ㅠ.-
댓글 2
문장 근처에서 SQL 구문에러가 났다는 말이죠. 쿼리만 놓고 보면 우선 number 는 auto_increment.. 즉 자동증가값입니다. 그냥 '' 처럼 빈칸으로 두면 되겠죠.
그 다음.. Insert 시 필드명이 잘못되었네요. 테이블에는 password 필드가 없는데 Insert 시 필드명에 password 가 지정되어 있습니다. 필드명이 password 가 아니라 pwd 일테죠?
그리고 $tablename=$simplereply; 이게 아니죠.
$ 는 변수란 뜻입니다. $tablename="simplereply"; 이게 맞습니다.
마지막에 테이블명을 변수를 썼군요.... --^
두리뭉실님~~~ 감사합니다... ^^