sql_query update 디비 업데이트가 안됩니다. 채택완료
타버린나무
3년 전
조회 1,169
</p>
<p><?php</p>
<p>include '_common.php';</p>
<p>$sql="select mb_id, mb_password from g5_member where mb_id='pass_test1' ";
$res= sql_query( $sql);</p>
<p>while( $row= sql_fetch_array( $res)) {</p>
<p> $new_pass=get_encrypt_string( $row['mb_password']);
//sql_query( "update g5_member set mb_passwd='$new_pass' where mb_id={$row['mb_id']}");
$sql = "update g5_member set mb_passwd='$new_pass' where mb_id={$row['mb_id']} ";
sql_query( $sql);
echo $sql."
";</p>
<p>}</p>
<p>
회원 비밀번호 번경에 대한 문의에 답변을 보고 해봤는데요 ( https://sir.kr/qa/437722 )
db에 회원을 pass_test1 비밀번호 pass_test1 라고 만들어 놨습니다.
저 코드를 new_pass.php 라는 화일로 만들어서 루트에 올려놓았습니다.
그리곤 인터넷 주소창에서 http://도메인/new_pass.php 라고 한뒤 엔터치면
update g5_member set mb_passwd='sha256:12000:wOLeiMv1Us7gqsvNugb9shy8KQcWJas6:wRE4ucmfvXR8gf99yNILVb8jL4mGgmFJ' where mb_id=pass_test1
이런 결과값이 나옵니다.
보긴엔 다 정상적인 동작을 한거같은데 mysql DB에 들어가서 확인해보면

비밀번호가 변경되지 않았습니다.
제가 뭘 잘못하고 있는건지...
( 생각해보면 누구나 주소창에서 new_pass.php를 실행할수있으니 안되는게 당연하기도 한데... )
뭐가 문제일까요.. ㅜㅜ;;
도움좀 부탁드리겠습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
답변을 작성하려면 로그인이 필요합니다.
로그인
update g5_member set mb_passwd='sha256:12000:Vxcr13xWWWNDqmARnASew/TNL4kfk/L7:4GRUaCgENFCrDC3fbsMBL9lp/uNZng2i' where mb_id='pass_test1'
1054 : Unknown column 'mb_passwd' in 'field list'
error file : /new_pass.php
위에처럼 나옵니다.
에러를 보니 필드가 없다니! 해서 보니 mb_passwd 가 아니라 mb_password 였네요
바꾸고 해보니 잘됩니다!!!!
정말 감사합니다.
전 질문에선 제가 이리저리 해보다가 따옴표를 빼먹었었네요..
저 같은 분이 있을까 코드를 다시 정리해봅니다.
[code]
<?php
// 회원생성시 DB에 직접 .xls 같은 화일로 만들어 올리고 비밀번호를 암호화 하는 소스
// 그누보드5 Q/A https://sir.kr/qa/437722 , https://sir.kr/qa/439243
// 해당 소스를 new_pass.php 파일로 만들어 올리고 실행 (주소창에서 http://도메인/new_pass.php )
include '_common.php';
//$sql="select mb_id, mb_password from g5_member where mb_id!='admin' "; // admin 아이디외 모든 아이디를
$sql="select mb_id, mb_password from g5_member where mb_id='pass_test1' "; // 타겟 아이디 하나만
$res= sql_query( $sql); // 불러옴
while( $row= sql_fetch_array( $res)) {
$new_pass=get_encrypt_string( $row['mb_password']); //mb_password 필드에 있는 비밀번호를 가져와서 암호화함
//echo "아이디 : ".$row['mb_id']." 기존 비밀번호 : ".$row['mb_password']."암호화 한 비밀번호 : ".$new_pass."<br>"; // 화면에 보여주기
//sql_query( "update g5_member set mb_password='$new_pass' where mb_id='$row['mb_id']'"); //아이디 하나만 변경
$sql = "update g5_member set mb_password='$new_pass' where mb_id='{$row['mb_id']}' "; // 전체 변경
sql_query( $sql, true); // 에러 확인
echo $sql."<br>";
}
?>
[/code]