웹 개발을 진행하다 보면 종종 PHP에서 Prepared Statement(준비 구문)를 활용해 SQL 쿼리를 작성했는데 결과가 한 건도 나오지 않는 상황에 부닥치게 된다. 특히 PHP 7.3 버전이나 그 이하 버전이라서 바인딩이 안 된다고 오해하기도 하지만, 사실 버전에 상관없이 Prepared Statement는 이미 오래전부터 지원되고 있다. 그럼에도 불구하고 쿼리를 직접 콘솔이나 phpMyAdmin 같은 DB 도구에 넣으면 값이 잘 나오는데, PDO(혹은 mysqli)에서 플레이스홀더를 사용하면 전혀 결과가 뜨지 않는 이유는 무엇일까? 직접 겪은 문제를 예로 들면서 자세히 살펴보자.Prepared Statement와 바인딩의 원리Prepared Statement는 SQL 인젝션을 방지하고 성능을 ..
데이터베이스를 설계하고 운영하다 보면, 예상치 못한 오류를 만날 때가 있습니다. 특히, 테이블의 PRIMARY KEY가 올바르게 설정되지 않은 경우, 삽입할 데이터를 관리하는 데 어려움을 겪을 수 있습니다. 이번 글에서는 PRIMARY KEY와 AUTO_INCREMENT 설정이 누락되었을 때 발생할 수 있는 문제와 이를 해결하는 방법을 단계별로 살펴보겠습니다.문제 상황: PRIMARY KEY와 AUTO_INCREMENT 누락어느 날, 아래와 같은 테이블이 있다고 가정해 봅시다:CREATE TABLE `steelcompany` ( `num` INT NOT NULL, `company` VARCHAR(20) DEFAULT NULL, PRIMARY KEY (`num`)) ENGINE=InnoDB DEFAU..
PHP와 MySQL로 JSON 변환 및 저장하기: 기존 테이블 데이터 재구성웹 개발을 하다 보면, 데이터를 효율적으로 관리하기 위해 데이터베이스를 사용합니다. 하지만 시간이 지나면서 기존에 구축한 데이터 구조가 비효율적이거나 복잡하다고 느껴질 때가 있습니다. 특히 JSON 형식을 활용하면 이런 문제를 해결할 수 있습니다. 이번 글에서는 기존 데이터베이스 테이블을 JSON 형식으로 변환하여 새로운 컬럼에 저장하는 과정을 소개합니다. 문제 상황: 기존 데이터베이스 구조의 한계예전에는 JSON을 사용하는 방법에 익숙하지 않아서, 관계형 데이터베이스의 테이블을 연결하여 데이터를 저장하곤 했습니다. 예를 들어, estimatedb라는 테이블이 있고, 이 테이블의 각 행에 연결된 세부 데이터는 ETxmlgrid라는..
안녕하세요! 이번 글에서는 MySQL 데이터베이스에 데이터를 삽입하는 방법을 간단하고 명확하게 설명드리겠습니다. 특히, 여러 데이터를 한 번에 입력할 때 사용할 수 있는 INSERT INTO 명령어 작성법을 소개합니다.상황: 직원 정보를 데이터베이스에 삽입하기예를 들어, 한 회사의 직원 정보를 데이터베이스에 저장해야 한다고 가정해봅시다. 다음과 같은 정보가 있습니다:이름 직위 전화번호 파트 아이디 비밀번호홍길동과장010--출고ck.****ck********김철수차장010--품질ch.****lc*******이영희부장010--품질dh.****asd*****박영수과장010--품질yj.****y********@정민호과장010--구매/관리cm.****cm****최준호부장010--설계ak****ai*****한길동차..
picuploads라는 테이블에 별도도 파일 저장과 관련된 정보를 기억하고, 해당 데이터의 저장부분을 분리해서 관리하는 것이다. parentnum이라는 컬럼에 해당 레코드의 고유 num을 기록하고, tablename과 item으로 그 구분을 해서 저장하는 방식이다.$sql = "SELECT num, created_at, updated_at, tablename, item, parentnum, picname, realname FROM chandj.picuploads";우선 output의 테이블의 정보를 picuploads라는 테이블에 저장하고 싶다. item은 'attached'로 저장하고, parentnum은 num, picname은 서버에 저장된 이름, realname은 파일 선택시 실제파일이름Sql 삽..
1 num 기본 int(10) 아니오 없음 AUTO_INCREMENT 변경 변경 삭제 삭제 더보기 더보기2 tablename varchar(30) utf8_general_ci 예 NULL 변경 변경 삭제 삭제 더보기 더보기3 item varchar(20) utf8_general_ci 예 NULL 변경 변경 삭제 삭제 더보기 더보기4 parentnum text utf8_general_ci 예 NULL 변경 변경 삭제 삭제 더보기 더보기5 picname text utf8_general_ci 예 NULL 변경 변경 삭제 삭제 더보기 더보기6 realname text utf8_general_ci 예 NULL 변경 변경 삭제 삭제 더보기 더보기위의 테이블에 따로 insert 명령을 넣지 않고 자료의 저장시간을 저..
질문 )fileuploads 테이블의 요소는 아래와 같다. id, tablename ,item, parentid, realname ,savename 위의 자료 중 tablename이 'sillcover'이고 item이 'image'인 것을 찾아서 picuploads 테이블의 요소는 아래와 같다. num,tablename,item,parentnum,picname tablename은 똑같이 넣어주고, item도 마찬가지, parennum = parentid, picname은 savename으로 행을 추가하는 sql 코드는? ChatGPT의 말: ChatGPT fileuploads 테이블에서 조건에 맞는 데이터를 picuploads 테이블로 변환하여 추가하는 SQL 코드는 다음과 같습니다: SQL 코드 IN..
이런 의문이 생겼습니다. 두개를 다 사용하고 있는데,mysql을 사용하는데, phpMyAdmin 화면에서 테이블의 구조를 text로 받아보려면 어떻게 하지? dbeaver의 경우는 DDL을 보면 그 구조를 텍스트로 복사할 수 있거든요. MySQL에서 테이블의 구조를 텍스트로 출력하고 싶다면, SHOW CREATE TABLE 명령어를 사용하여 해당 테이블의 DDL(Data Definition Language) 스크립트를 볼 수 있습니다. 이를 통해 테이블의 생성 스크립트를 텍스트로 복사할 수 있습니다. phpMyAdmin에서 테이블 구조를 텍스트로 받는 방법은 다음과 같습니다: phpMyAdmin 사용: phpMyAdmin에 로그인하고, 원하는 데이터베이스를 선택한 후 테이블을 선택합니다. 상단 메뉴에서..
- Total
- Today
- Yesterday
- 코딩효율성
- Bootstrap 5
- #프로그램설치
- 뫄프로그래밍
- 도면자동생성
- #InstallForge
- 효율적코딩방법
- isset을 적용해야 하는 이유
- coalesce는 한국어로 "코얼레스크" 또는 "코얼리스"
- 엑셀보호
- 구글드라이브API
- 엑셀셀보호
- 티스토리챌린지
- 테크에능한여성
- 오블완
- 파이썬코드줄바꿈방법
- 스크립트작성기초
- 프로그래머생활
- 1. #웹개발 2. #로트번호 3. #성적서보기 4. #ajax 5. #jquery 6. #php 7. #프론트엔드 8. #백엔드 9. #부트스트랩 10. #웹기능구현
- 오토핫키가이드
- json파일편하게보는법
- #파이썬패키징
- General error: 2031
- ajax오류메시지
- json파일형태보기
- 캐드자동작도
- chatGPT3.5파이썬버전
- 코딩튜토리얼
- sql문장 날짜계산
- 엑셀입력보호
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |