PHP, Mysql: 좋아요 기능 만들기

예전에 PHP로 만들었던 간단한 CRUD 게시판에 ‘좋아요 기능’을 추가해보도록 하겠습니다. ‘좋아요 기능’은 빈 하트(♡)를 누르면 하트가 채워지면서(♥) 숫자 카운트가 올라가는 기능입니다. PHP: 데이터베이스 접근 기초(SELECT, INSERT, UPDATE, DELETE) 여기서는 로그인 기능이 구현되지 않았으므로 아이피 주소(IP Address)를 기준으로 중복 좋아요를 방지하도록 하겠습니다. 만약 로그인이 구현되어 있다면 로그인한 유저를 기준으로 중복 좋아요를 더보기…

PHP, Mysql: SELECT JOIN 문 실행시 중복된 이름의 열(컬럼) 결과를 가져오는 방법

Q. 내 데이터베이스에 두 개의 테이블이 있습니다. 컬럼이 있는 NEWS 테이블: id – 뉴스 ID user – 작성자의 사용자 ID 컬럼이 있는 USERS 테이블 : id -사용자 ID 이것에 대한 SQL을 실행하려고 합니다. SELECT * FROM news JOIN users ON news.user = user.id PHP에서 결과를 얻을 때 컬럼 이름을 $row[‘컬럼이름’]으로 가져오는 경우, 동일한 더보기…

phpMyAdmin: 테이블에 외래키 설정하기

[구조] 버튼을 클릭합니다. [릴레이션 뷰] 버튼을 클릭합니다. 제약의 이름을 입력합니다. 외래키로 사용할 컬럼(다른 테이블을 참조하는 컬럼)의 컬럼명을 설정합니다. 참조되는 컬럼(다른 테이블의 기본키)의 컬럼명을 찾아 설정합니다. 두 컬럼 간의 데이터 타입 및 인코딩은 일치해야 합니다. 옵션 (SET NULL: 참조되는 컬럼이 변경되면 null로 업데이트/CASCADE: 연쇄 업데이트/RESTRICT: 변경 제한/NO ACTION: 참조되는 컬럼의 변경에 더보기…

Spring Boot: 시큐리티(Security) – 3 – 로그인 및 권한 정보를 DB에서 가져오기

  깃허브에서 전체 코드 보기 – https://github.com/ayaysir/spring-boot-security-example-1 이전 글에서는 기초를 익히기 위해 사용자 및 권한 정보를 inMemoryAuthentication이라 해서 메모리에 하드코딩 했었는데요, 이것을 데이터베이스에 옮겨서 가져오도록 하겠습니다. 데이터베이스는 mariadb 기준입니다. macOS에서 mariadb 설치하기 Spring Boot: mariadb 연결하기 (JDBC-Maven 기준)   먼저 데이터베이스에 임의의 테이블을 만들고 사용자 정보를 입력합니다. 지금은 회원가입 절차가 없으므로 DB에 더보기…

Spring: 데이터베이스 연동(Oracle-JDBC 기준), Spring JDBC

XML 선언 이 부분은 데이터베이스의 종류, 사용하는 플랫폼에 따라 달라지므로 사용 환경에 맞는지 확인해봐야 합니다. Spring Boot의 마리아DB(mariadb)기준은 이 글을 참고해주세요. 이 부분은 properties 태그와 dependencies 태그 사이에 추가합니다. <repositories> <repository> <id>oracle</id> <url>http://maven.jahia.org/maven2</url> </repository> </repositories> 이 부분은 dependencies 태그 쌍 내에 추가합니다.   <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>12.1.0.2</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> 더보기…

Spring Boot: mariadb 연결하기 (JDBC-Maven 기준)

Spring Boot에 JDBC를 통해 mariadb(mysql) 연결하는 방법입니다. 1. pom.xml의 <dependencies>에 다음을 추가합니다. <!– mariaDb –> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.mariadb.jdbc</groupId> <artifactId>mariadb-java-client</artifactId> </dependency> 혹시 디펜던시 목록에 다른  mysql, Jdbc 과 관련된 게 있다면 충돌이 발생하므로 삭제하는 것이 좋습니다.   2. applications.properties (또는 기타 프로퍼티 파일)에 다음을 추가합니다. spring.datasource.driverClassName=org.mariadb.jdbc.Driver spring.datasource.url=jdbc:mariadb://127.0.0.1:3306/test (본인 더보기…

PHP: 데이터베이스 접근 기초(SELECT, INSERT, UPDATE, DELETE)

1. SELECT php의 코드는 일반 텍스트와 구분하여 <?php […코드…] ?>를 사용합니다. 또는 <?[…코드…] ?>도 가능합니다. HTML 코드 내에서 변수 등을 단순히 출력하고자 할 때는 <?=[변수 이름 등]?> 의 형태로 사용합니다. 브라우저에 출력하는 코드는 echo [내용] 입니다. 내용을 그대로 소스로 내보냅니다. 변수명은 $로 시작합니다. 스트링을 덧붙이고자 할 때는 + 대신 . 를 사용합니다. 데이터베이스를 접속하는 더보기…

macOS에서 mariadb 설치하기

0. 맥 앱 스토어에서 Xcode 설치 1. brew 설치: 터미널을 열고 다음 명령어를 입력 ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” 2. mariadb 설치 brew install mariadb 3. 서버 가동 mysql.server status # 상태확인 mysql.server stop # 정지 mysql.server start # 시작 mysql -uroot 4. root 비밀번호 변경 update user set authentication_string=password(‘비밀번호’) 더보기…

[정보처리기사] 실기 데이터베이스 암기사항

데이터베이스의 정의: 통저운공 통합된 데이터: 중복 최소화 저장된 데이터: 언제든지 이용 가능하도록 저장된 공용 데이터: 여러 사람/시스템이 공유 운영 데이터: 관리가 필요한 이용가치가 있는 데이터의 집합   데이터베이스의 특징: 계동실내화 (동계실내화) 계속적 변화(Continuous Evolution): 항상 최신 정보를 유지할 수 있도록 삽삭갱(삽입 삭제 갱신)이 이루어짐. 동시 공유(Concurrent Sharing): 여러 사용자가 동시에 더보기…