안녕하세요
최근 상기 사이트를 열면 매우 자주 아래와 같은 오류메세지가 뜹니다. 그래서 db 에 가보면 yc4_on_uid 테이블의 맨 끝에 생성된 레코드의 on_uid 필드값이 없어서 문제가 되는 것 같아 이 레코드를 삭제하니 정상화가 됩니다만 자주 동일한 문제가 발생합니다. 원인 과 대책 좀 꼭 알려주시면 감 - 사 하겠슴다. 매우 자주 일어나서 입장이 어렵습니다 ㅜㅜ
혹 어느 패치를 꼭 해야하는지요??
----- 아 래 --------------
INSERT INTO yc4_on_uid set on_datetime = NOW(), session_id = 'd80049590a472a54d547ee1ae116ec63'
1062 : Duplicate entry '' for key 2
error file : /index.html
최근 상기 사이트를 열면 매우 자주 아래와 같은 오류메세지가 뜹니다. 그래서 db 에 가보면 yc4_on_uid 테이블의 맨 끝에 생성된 레코드의 on_uid 필드값이 없어서 문제가 되는 것 같아 이 레코드를 삭제하니 정상화가 됩니다만 자주 동일한 문제가 발생합니다. 원인 과 대책 좀 꼭 알려주시면 감 - 사 하겠슴다. 매우 자주 일어나서 입장이 어렵습니다 ㅜㅜ
혹 어느 패치를 꼭 해야하는지요??
----- 아 래 --------------
INSERT INTO yc4_on_uid set on_datetime = NOW(), session_id = 'd80049590a472a54d547ee1ae116ec63'
1062 : Duplicate entry '' for key 2
error file : /index.html
댓글 5개
lib/shop.lib.php 의 코드가
// 유일키를 생성
function get_unique_id($len=32)
{
global $g4;
$result = @mysql_query(" LOCK TABLES $g4[yc4_on_uid_table] WRITE, $g4[yc4_cart_table] READ, $g4[yc4_order_table] READ ");
if (!$result) {
$sql = " CREATE TABLE `$g4[yc4_on_uid_table]` (
`on_id` int(11) NOT NULL auto_increment,
`on_uid` varchar(32) NOT NULL default '',
`on_datetime` datetime NOT NULL default '0000-00-00 00:00:00',
`session_id` varchar(32) NOT NULL default '',
PRIMARY KEY (`on_id`),
UNIQUE KEY `on_uid` (`on_uid`) ) ";
sql_query($sql, false);
}
// 이틀전 자료는 모두 삭제함
$ytime = date("Y-m-d", $g4['server_time'] - 86400 * 1);
$sql = " delete from $g4[yc4_on_uid_table] where on_datetime < '$ytime' ";
sql_query($sql);
$unique = false;
do {
sql_query(" INSERT INTO $g4[yc4_on_uid_table] set on_uid = NOW(), on_datetime = NOW(), session_id = '".session_id()."' ", false);
$id = @mysql_insert_id();
$uid = md5($id);
sql_query(" UPDATE $g4[yc4_on_uid_table] set on_uid = '$uid' where on_id = '$id' ");
// 장바구니에도 겹치는게 있을 수 있으므로 ...
$sql = "select COUNT(*) as cnt from $g4[yc4_cart_table] where on_uid = '$uid' ";
$row = sql_fetch($sql);
if (!$row[cnt]) {
// 주문서에도 겹치는게 있을 수 있으므로 ...
$sql = "select COUNT(*) as cnt from $g4[yc4_order_table] where on_uid = '$uid' ";
$row = sql_fetch($sql);
if (!$row[cnt])
$unique = true;
}
} while (!$unique); // $unique 가 거짓인동안 실행
@mysql_query(" UNLOCK TABLES ");
return $uid;
}
위와 같이 되어 있는지 확인하여 주십시오.
FTP 정보를 비밀글로 남겨주시면 저희쪽에서도 확인해 드리겠습니다.
// 유일키를 생성
function get_unique_id($len=32)
{
global $g4;
$result = @mysql_query(" LOCK TABLES $g4[yc4_on_uid_table] WRITE, $g4[yc4_cart_table] READ, $g4[yc4_order_table] READ ");
if (!$result) {
$sql = " CREATE TABLE `$g4[yc4_on_uid_table]` (
`on_id` int(11) NOT NULL auto_increment,
`on_uid` varchar(32) NOT NULL default '',
`on_datetime` datetime NOT NULL default '0000-00-00 00:00:00',
`session_id` varchar(32) NOT NULL default '',
PRIMARY KEY (`on_id`),
UNIQUE KEY `on_uid` (`on_uid`) ) ";
sql_query($sql, false);
}
// 이틀전 자료는 모두 삭제함
$ytime = date("Y-m-d", $g4['server_time'] - 86400 * 1);
$sql = " delete from $g4[yc4_on_uid_table] where on_datetime < '$ytime' ";
sql_query($sql);
$unique = false;
do {
sql_query(" INSERT INTO $g4[yc4_on_uid_table] set on_uid = NOW(), on_datetime = NOW(), session_id = '".session_id()."' ", false);
$id = @mysql_insert_id();
$uid = md5($id);
sql_query(" UPDATE $g4[yc4_on_uid_table] set on_uid = '$uid' where on_id = '$id' ");
// 장바구니에도 겹치는게 있을 수 있으므로 ...
$sql = "select COUNT(*) as cnt from $g4[yc4_cart_table] where on_uid = '$uid' ";
$row = sql_fetch($sql);
if (!$row[cnt]) {
// 주문서에도 겹치는게 있을 수 있으므로 ...
$sql = "select COUNT(*) as cnt from $g4[yc4_order_table] where on_uid = '$uid' ";
$row = sql_fetch($sql);
if (!$row[cnt])
$unique = true;
}
} while (!$unique); // $unique 가 거짓인동안 실행
@mysql_query(" UNLOCK TABLES ");
return $uid;
}
위와 같이 되어 있는지 확인하여 주십시오.
FTP 정보를 비밀글로 남겨주시면 저희쪽에서도 확인해 드리겠습니다.
게시글 목록
| 번호 | 제목 |
|---|---|
| 56073 | |
| 56067 | |
| 56065 | |
| 56060 | |
| 56058 | |
| 56055 | |
| 56051 | |
| 56048 | |
| 56044 | |
| 56043 | |
| 56042 | |
| 56039 | |
| 56035 | |
| 56032 | |
| 56030 | |
| 56028 | |
| 56025 | |
| 56018 | |
| 56012 | |
| 56010 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기