시퀄라이즈를 사용하다보니 모델에서 수정을 해도 변경이 되지 않는 것을 확인할 수 있었다.

서버를 껐다가 켜봐도 ...

 

난 분명히 allowNull을 false에서 true로 변경했는데, 위와 같이 null이 불가능하다는 에러를 계속 내보내고 있었다.

당황스럽다. 아무리 고치고 껐다가 켜봐도 안되서...

 

SQL문을 사용해보기로 했다.

 

alter table users modify column confirm_password varchar(255);  // null 허용

alter table users modify column confirm_password varchar(255) not null;  // null 비허용

이렇게 하면, users 테이블에서 confirm_password 컬럼을 수정하겠다는 의미이다.

not null을 명시해서 쓰면 null을 허용하지 않겠다는 의미이며, 생략하게 되면 기본적으로 null을 허용한다는 의미가 된다.

 

이렇게 입력한 뒤, 다시해보니까 해결되었다. 이런 에러가 가장 싫다. 

 

에러가 아니라 버그?

 

버그 하나 발견한 하루였다.

 

 

Posted by sungho88
,

원격 서버에 있는 데이터베이스에 들어있는 데이터를 추출하여,

 

개인 pc에서 테스트를 하고 싶었다. 그래서, 일단 빼는 방법을 찾게 되었다.

 

mysql에서 데이터 뽑기

 

.cvs 파일로 뽑으면 된다. 다만, 구분자는 쉼표(,)로 하면 오류가 발생한다.

 

왜냐하면 게시판 데이터이기 때문에, 에디터 코드가 들어가 있거나, 장문의 글들이 있기 때문에

 

쉼표는 데이터를 구분해줄 수 없기 때문이다. 따라서 탭으로 구분하는 것이 좋다

 

이 것은 ','로 끊으라는 것인데, 이렇게하면 원하지 않는 결과가 나온다.

 

이렇게 하면, 탭으로 구분하라는 것이다. 이렇게 하면

 

쿼리 오케이 하면? 성공이다!

위치는 /tmp/mydaya.csv로 해놨으니 찾아가보면 엑셀 모양으로 저장이 되어있는 것을 볼 수 있다.

 

이것을 가져오는데... 문제가 발생한다.

 

한글이 깨진 것이다.

 

메모장에서 열면? 잘 나온다... 그렇다면 굳이 .csv 확장자를 할 필요가 없었다.   .txt로 

텍스트 파일로 받아도 괜찮다. 한글도 안 깨지고...아래와 같이 하는게 더 시간 단축이 될 것이다. 

 

mysql에서 데이터 넣기

1. phpmyadmin

2. 터미널에서 텍스트로 LOAD FILE

3. Mysql workbench

 

등으로 할 수 있는데,

 

phpmyadmin으로 했다.

 

<-- 가져오기 -- 파일선택 -- utf-8 -- 형식 : CSV --> 

 

열(컬럼) 구분자를 \t로 맞춰줘야한다.

 

 

 

Posted by sungho88
,

PHP에서는 여러 데이터베이스를 사용할 수 있다.

그 중에서, MySQL 을 연동하기 위해 mysqli_connect() 함수를 사용한다.

DB관련 정보 파일을 따로 만드는 것이 좋다.

각 파일마다 동일한 접속을 하는것은 코드 자원의 낭비이자, 훗날 유지보수를 위해 피해야한다.

설정파일이므로 dbconfig.php로 이름을 지정하자.(이름은 물론 마음대로)


dbconfig.php


<?php


$DBhost = "localhost";

$DBuser = "root";

$DBpassword = "XXXXX";

$DBname = "testDB";


$conn = mysqli_connect($DBhost, $DBuser, $DBpassword, $DBname);


if ($conn->connect_error) {

die("Connection failed: " . $conn->connect_error);

}

?>



이렇게하면, php와 mySQL이 연동된다.


mysqli_connect의 매개변수


1 : 아이피 주소

2 : MySQL 아이디

3 : MySQL 비밀번호

4 : MySQL DB 이름

5 : MySQL PORT(생략 가능. 기본적으로 3306이기 때문에)


이렇게 파일을 작성했으면, 여러 PHP파일에서 불러다가 사용할 수 있다.

불러오는 방법은 


require_once() 또는 include_once()를 사용하면 된다. 이 외에도 require()나 include()가 존재한다.

_once가 붙었으므로 한 번 호출된다는 것은 알 것이다.

php 시작 전에 


require_once("../dbconfig.php");


을 입력하게 되면(물론 괄호 안에는 본인의 상황에 맞는 경로로 지정해야 함)

다른 php파일에서 위 파일을 사용할 수 있게 된다.

Posted by sungho88
,