저장이 안되는 쉽지 않은 문제입니다.

저장이 안되는 쉽지 않은 문제입니다.

QA

저장이 안되는 쉽지 않은 문제입니다.

본문

도움을 일차 받았는데...방법을 잘 모르겠고 해결안되어

다시 질문드립니다.

 

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);

?>

136c5777293791b9f38a0c50935bd9ff_1456371392_1149.png
 

이 질문에 댓글 쓰기 :

답변 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);

?>
 

 

친절한 설명 감사드립니다~ 금새 알아보지 못하는 제 수준이 개탄스럽습니다.
1)function DB_insert($table,$Value_array,$cmd="",$slashes=""){
부터

goto_url('sentence.php?'.$qstr);
까지를 커먼립에 넣으라는 말씀이시죠?

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;
}
이부분만 삭제하라는 말씀이시죠?

아뇨아뇨 저부분은 저렇게두고 테스트를 완료하신후 잘되면

저부분에서

 

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");
}

이부분은 삭제하십시오! 

답변을 작성하시기 전에 로그인 해주세요.
전체 2,074
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT