저장이 안되는 쉽지 않은 문제입니다.
본문
도움을 일차 받았는데...방법을 잘 모르겠고 해결안되어
다시 질문드립니다.
update.php가 다음과 같이 되어 있습니다. db에는 그림과 같이 일부 필드는 저장이 안되고 있습니다.
그누 최신버전에서 안되는데 어떻게 해야 할지요,,,간단하지 않는 내용같은데
도움주시면 감사하겠습니다.
<?php
include('./_common.php');
//if (!$is_admin)
// alert_close("관리자만 접근 가능합니다.");
include('./config.php');
function _esc($str){
return mysql_real_escape_string($str);
}
switch($_POST['actmode']){
//===========================================================================
// 등록
//===========================================================================
case 'a':
default:
$cs_content = conv_content(stripslashes($_POST['cs_content']), 2);
$sql = "INSERT INTO ".$cscfg['cs_table']."(
cs_cate, cs_step, cs_label, cs_content, cs_regdate) VALUES(
'"._esc($_POST['cs_cate'])."',
'"._esc($_POST['cs_step'])."',
'"._esc($_POST['cs_label'])."',
'"._esc($cs_content)."',
'".date('Y-m-d H:i:s')."'
)";
sql_query($sql);
break;
}
goto_url('sentence.php?'.$qstr);
?>
답변 2
일단 필드형식들이 제대로 되어있다 가정할때..
insert 소스부분이 디버깅하기 힘들게 짜여졌네요.
깔끔하게 함수를 만들어서 집어 넣자면...
아래처럼 이런식으로 해보세요.
DB_insert 함수부분은 common.lib.php 에 넣어놓고 쓰시면 아무데서나 사용할수
있을겁니다. 물론 이경우엔 함수명중복되니 common.lib.php 에만 넣어놓고
본 페이지에서는 삭제하세요.
만약 데이터가 들어가지 않는다면..
1.필드형식 체크 (숫자형인데 문자가 들어간다거나...등등)
2.아래 코드에 insert 값 배열부분을 print_r 을 떄려보세요. print_r($insert_arr);
원하는 값들이 다 들어가있는지 디버깅해보면 됩니다.
<?php
include('./_common.php');
function DB_insert($table,$Value_array,$cmd="",$slashes=""){
if(!$cmd) $cmd='insert';
if($slashes=='noslashes' and get_magic_quotes_gpc()){foreach($Value_array as $key=>$value) if($value) $save_value .= "$key='$value',";}
else{foreach($Value_array as $key=>$value) $save_value .= "$key='".addslashes($value)."',";}
$save_value=preg_replace("/,$/",'',$save_value);
return sql_query("$cmd into $table set $save_value");
}
$insert_arr = array (
"cs_cate" => $_POST['cs_cate'],
"cs_step" => $_POST['cs_step'],
"cs_label" => $_POST['cs_label'],
"cs_content" => $cs_content,
"cs_regdate" => date("Y-m-d H:i:s")
);
DB_insert($cscfg['cs_table'],$insert_arr);
goto_url('sentence.php?'.$qstr);
?>
!-->
아뇨아뇨 저부분은 저렇게두고 테스트를 완료하신후 잘되면
저부분에서
function DB_insert($table,$Value_array,$cmd="",$slashes=""){
if(!$cmd) $cmd='insert';
if($slashes=='noslashes' and get_magic_quotes_gpc()){foreach($Value_array as $key=>$value) if($value) $save_value .= "$key='$value',";}
else{foreach($Value_array as $key=>$value) $save_value .= "$key='".addslashes($value)."',";}
$save_value=preg_replace("/,$/",'',$save_value);
return sql_query("$cmd into $table set $save_value");
}
이부분은 common.lib.php 로 복사해서 넣으시고
기존 파일의
function DB_insert($table,$Value_array,$cmd="",$slashes=""){
if(!$cmd) $cmd='insert';
if($slashes=='noslashes' and get_magic_quotes_gpc()){foreach($Value_array as $key=>$value) if($value) $save_value .= "$key='$value',";}
else{foreach($Value_array as $key=>$value) $save_value .= "$key='".addslashes($value)."',";}
$save_value=preg_replace("/,$/",'',$save_value);
return sql_query("$cmd into $table set $save_value");
}
이부분은 삭제하십시오!