어제 질문 했었는데요..
플래토님이 친절하게 답변 달아주셨지만
Copy
$table_arr = array( "g5_member", "g5_memo", "g5_point", "g5_write_free", "g5_write_notice", "g5_write_rwmo", "g5_write_lottos", "g5_write_auction", "g5_write_stocks", "g5_write_in_offic", "g5_write_regViewList", "g5_qa_content", "q_stock_own");
foreach ($table_arr as $tbl) {
$sql = "update {$tbl}
set mb_id = '{$strq}',
mb_nick = '{$strq}',
po_rel_id = '{$strq}',
me_send_mb_id = '{$strq}'
where mb_id = '{$username}' ";
sql_query($sql);
}
이렇게 작성하니까 작동을 안하더라구요.. 뭐가 문제일까요?
다른거 보니까 $g5['member_table'] 이렇게 쓰던데 $g5['member_table'], $g5['memo_table'] 이렇게 쓰니까 500 에러뜨고.. ㅠㅠ 어디가 문제일까요..? 도와주세요 ㅠㅠ
답변 5개 / 댓글 3개
채택된 답변
+20 포인트
실수가 있었습니다.
Copy
if({$tbl} == "g5_member"){
$sql = "update {$tbl}
set mb_id = '{$str}', mb_nick = '{$str}'
where mb_id = '{$username}' or mb_nick = '{$username}' ";
}
이렇게 해주셔야 하는건데
이렇게 해주시면 어떨가요?
Copy
$table_arr = array( "g5_member", "g5_memo", "g5_member", .... , "g5_qa_content", "q_stock_own");
foreach ($table_arr as $tbl) {
if({$tbl} == "g5_member"){
$sql = "update {$tbl}
set mb_id = '{$str}', me_send_mb_id = '{$str}'
where mb_id = '{$username}' or mb_nick = '{$username}' ";
}
if({$tbl} == "g5_memo"){
$sql = "update {$tbl}
set me_send_mb_id = '{$str}'
where me_send_mb_id = '{$username}' ";
}
if({$tbl} == "g5_point"){
$sql = "update {$tbl}
set mb_id = '{$str}', po_rel_id = '{$str}'
where mb_id = '{$username}' or po_rel_id = '{$username}' ";
}else{
$sql = "update {$tbl}
set mb_id = '{$str}'
where mb_id = '{$username}' ";
}
sql_query($sql);
}
좀 복잡하지만 필드를 구분하자면...
"g5_member", "g5_memo", "g5_point", "g5_write_free", "g5_write_notice", "g5_write_rwmo", "g5_write_lottos", "g5_write_auction", "g5_write_stocks", "g5_write_in_offic", "g5_write_regViewList", "g5_qa_content", "q_stock_own"
g5_point를 제외한 테이블들엔 po_rel_id, me_send_mb_id 란 컬럼이 없을텐데요..
지금 돌리시는 쿼리문은
g5_member, g5_member, g5_point 등등.. 테이블들에서 po_rel_id, me_send_mb_id 값을 변경해주는 구문인데 앞서 말씀드리듯 g5_member,g5_memo.... 테이블들에는 해당 컬럼이 없기때문에 실행이 안되는것 같습니다.
답변을 작성하려면 로그인이 필요합니다.