본문 바로가기

IT tech Coding/mysql54

PHP에서 JSON 데이터를 MariaDB에 저장할 때 주의할 점 (최대 문자수와 예외 처리) php 7.3버전, mariadb-10.x (UTF-8) 버전을 사용하고 있다. json형태로 table의 행의 컬럼에 최대 들어갈 수 있는 문자수는 몇개인가요? json 형태로 만약 그 양을 넘어가면 어떻게 처리될까요? PHP 7.3 + MariaDB 10.x(UTF-8) 환경에서 JSON 형태의 데이터를 테이블의 컬럼에 저장할 수 있는 최대 길이는 해당 컬럼의 데이터 타입에 따라 결정됩니다. ✅ 1. 컬럼 타입별 최대 문자 수데이터 타입 최대 바이트 수 최대 문자 수 (UTF-8) 기준TINYTEXT255 bytes약 85자 (한글 포함 시 더 줄어듦)TEXT65,535 bytes약 21,000자MEDIUMTEXT16,777,215 bytes약 5,592,405자LONGTEXT4,294,967,295.. 2025. 5. 14.
연구노트 indate 날짜 자동 수정하는 SQL 방법! 실무에 꼭 필요한 꿀팁 \--\-- 데이터베이스: `mirae8440`--------------------------\--\-- 테이블 구조 `eworks`-------------------CREATE TABLE `eworks` (`num` int(11) NOT NULL,`is_deleted` tinyint(1) DEFAULT NULL,`status` text,`done` text,`e_viewexcept_id` text NOT NULL,`eworks_item` text NOT NULL,`e_title` text,`contents` text,`registdate` datetime DEFAULT NULL,`e_line` text,`e_line_id` text,`e_confirm` text NOT NULL,`e_confirm_id.. 2025. 5. 12.
오류: SQLSTATE[HY093]: Invalid parameter number 해결하기 오류의 원인은 :search 파라미터를 동일한 이름으로 여러 번 사용했기 때문입니다. PHP 7.3에서는 바인딩할 때 1:1 매칭이 필요하므로, 동일한 이름의 파라미터를 여러 번 사용할 수 없습니다. 해결 방법은 각 컬럼마다 고유한 파라미터 이름을 생성해서 사용하는 것입니다.아래는 고유 파라미터 이름을 사용하도록 수정한 코드 예제입니다.query("SHOW COLUMNS FROM {$DB}.{$tablename}"); $columns = $columnQuery->fetchAll(PDO::FETCH_COLUMN); $searchConditions = []; foreach ($columns as $index => $column) { // 각 컬럼마다 고유한 파라미터 이름 .. 2025. 3. 23.
DELETE와 TRUNCATE의 차이점, 언제 어떤 걸 써야 할까? SQL을 다루다 보면 테이블의 데이터를 한꺼번에 삭제해야 하는 경우가 많다. 가장 대표적인 방법이 바로 DELETE와 TRUNCATE인데, 겉으로 보기에는 비슷하지만 작동 방식과 성능 면에서 큰 차이가 있다. 초보 개발자라면 어떤 상황에서 어느 것을 써야 하는지 헷갈릴 수밖에 없다. 이번 글에서는 DELETE와 TRUNCATE의 차이를 정확히 짚어보고, 언제 어떤 명령어를 사용하는 것이 좋은지 살펴보겠다. 1. DELETE: 데이터만 삭제, 구조는 유지DELETE는 테이블에서 특정 조건에 맞는 데이터를 삭제하는 SQL 명령어다. 모든 데이터를 삭제하고 싶다면 다음과 같이 사용할 수 있다.DELETE FROM almember;이 명령어는 테이블의 모든 데이터를 지우지만, 테이블의 구조(컬럼, 제약 조건 등.. 2025. 2. 23.
PHP MySQL 검색 기능: 테이블 전체 컬럼에서 자동으로 검색하는 방법 데이터베이스에서 원하는 정보를 빠르게 찾을 수 있도록 검색 기능을 구현하는 것은 매우 중요하다. 특히 여러 개의 컬럼에서 하나의 검색어로 데이터를 조회할 수 있도록 만들면, 사용자 경험이 훨씬 좋아진다.이번 포스팅에서는 MySQL 테이블의 모든 컬럼을 자동으로 검색하는 PHP 코드를 구현하는 방법을 알아본다. 기존에는 특정 컬럼을 지정해 검색하는 방식이 일반적이었지만, 테이블에 새로운 컬럼이 추가되더라도 수정 없이 자동으로 반영될 수 있도록 효율적인 쿼리를 구성할 것이다. 1. MySQL에서 특정 컬럼이 아닌 전체 컬럼을 검색해야 하는 이유일반적으로 데이터베이스에서 검색을 수행할 때는 특정 컬럼을 지정해 검색하는 경우가 많다. 예를 들어, name 또는 email 컬럼에서 특정 값을 찾는 방식이다.SEL.. 2025. 2. 16.
PHP에서 Prepared Statement로 검색 결과가 나오지 않을 때 확인해야 할 점들 웹 개발을 진행하다 보면 종종 PHP에서 Prepared Statement(준비 구문)를 활용해 SQL 쿼리를 작성했는데 결과가 한 건도 나오지 않는 상황에 부닥치게 된다. 특히 PHP 7.3 버전이나 그 이하 버전이라서 바인딩이 안 된다고 오해하기도 하지만, 사실 버전에 상관없이 Prepared Statement는 이미 오래전부터 지원되고 있다. 그럼에도 불구하고 쿼리를 직접 콘솔이나 phpMyAdmin 같은 DB 도구에 넣으면 값이 잘 나오는데, PDO(혹은 mysqli)에서 플레이스홀더를 사용하면 전혀 결과가 뜨지 않는 이유는 무엇일까? 직접 겪은 문제를 예로 들면서 자세히 살펴보자.Prepared Statement와 바인딩의 원리Prepared Statement는 SQL 인젝션을 방지하고 성능을 .. 2025. 1. 20.
반응형