집 >데이터 베이스 >MySQL 튜토리얼 >PHP 및 MySQL의 쉼표로 구분된 목록에서 키워드를 분할하고 저장하는 방법은 무엇입니까?
PHP와 MySQL의 효과적인 키워드 분할 및 저장
데이터베이스 관리에서 키워드를 추출하고 구성해야 하는 시나리오가 발생할 수 있습니다. 특정 필드. 이 문서에서는 PHP와 MySQL을 사용하여 키워드를 분할하고 전용 테이블에 저장한 다음 중간 테이블을 사용하여 원래 데이터에 다시 연결하는 최적화된 접근 방식을 보여줍니다.
문제 설명:
게시물 ID와 관련 태그가 쉼표로 구분된 목록으로 저장된 테이블이 있는 경우 작업에는 다음이 포함됩니다.
해결책:
최적화된 데이터베이스 스키마:
PHP 코드:
<code class="php">// Connect to the database $mysqli = new mysqli($host, $user, $password, $database); // Initialize variables $stmt = $mysqli->prepare("SELECT post_id, tags_csv FROM post_tags"); $stmt->execute(); $result = $stmt->get_result(); // Loop through the post tags while ($row = $result->fetch_assoc()) { $post_id = $row['post_id']; $tags = explode(',', $row['tags_csv']); // Insert unique keywords into the Keywords table foreach ($tags as $tag) { $stmt = $mysqli->prepare("INSERT IGNORE INTO keywords (name) VALUES (?)"); $stmt->bind_param("s", $tag); $stmt->execute(); } // Get keyword IDs and insert into Post_Keywords table foreach ($tags as $tag) { $stmt = $mysqli->prepare("SELECT keyword_id FROM keywords WHERE name = ?"); $stmt->bind_param("s", $tag); $stmt->execute(); $result = $stmt->get_result(); $keyword_id = $result->fetch_assoc()['keyword_id']; $stmt = $mysqli->prepare("INSERT IGNORE INTO post_keywords (post_id, keyword_id) VALUES (?, ?)"); $stmt->bind_param("ii", $post_id, $keyword_id); $stmt->execute(); } }</code>
혜택:
참고: 제공된 솔루션은 핵심 기능에만 중점을 두고 있으며 데이터 검증이나 오류 처리와 같은 추가 측면은 고려하지 않습니다.
위 내용은 PHP 및 MySQL의 쉼표로 구분된 목록에서 키워드를 분할하고 저장하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!