2021-01-09 개발일지
@
mysql비밀번호를 바꾸고 싶었다. mysql 5.7 버전 이상부터는 alter를 써야한다는 둥의 이야기를 다 듣고 그대로 했지만 비밀번호가 변경되지 않았다. (to-dy.tistory.com/58 이 블로그를 참조해서 진행함.)
@
user 테이블의 host에 localhost와 127.0.0.1이 둘 다 있었다. 저번에 구글링 중에 "localhost라고 하지말고 127.0.0.1이라고 하면 되는게 함정.."이라는 문구를 봤던 기억이 나서 127.0.0.1의 행을 삭제했다.
->정상적으로 비밀번호가 변경되었음.
password_last_changed가 root는 계속 변경이 되는데 127.0.0.1은 변경이 되지 않아서 뭔가 쟤가 문제가 있다고 생각했다.
@
게시판 글을 삭제하면 넘버링이 안맞는 문제 해결- auto_increment를 사용하지 않고 테이블의 행의 개수를 반환하는 mysql함수를 이용함.
$preQuery="SET @COUNT=0";
$stmt=$pdo->prepare($preQuery);
$stmt->execute();
$preQuery="UPDATE letters SET num=@COUNT:=@COUNT+1";
$stmt=$pdo->prepare($preQuery);
$stmt->execute();
$preQuery="SELECT COUNT(num) FROM letters";
$stmt=$pdo->prepare($preQuery);
$stmt->execute();
$rowCount=$stmt->fetch();
// print_r($rowCount);
//$rowCount['COUNT(num)']=행의 갯수
$query="INSERT INTO letters(num, title, contents) VALUES({$rowCount['COUNT(num)']}+1 ,'{$_POST['title']}', '{$_POST['contents']}')";//VALUES부분에는 변수만 넣는 것이 아니라
$stmt=$pdo->prepare($query);
$stmt->execute();