PHP 및 PDO: 데이터베이스에서 전체 텍스트 검색을 수행하는 방법
현대 웹 애플리케이션에서 데이터베이스는 매우 중요한 구성 요소입니다. 전체 텍스트 검색은 대량의 데이터에서 특정 정보를 검색해야 할 때 매우 유용한 기능입니다. PHP 및 PDO(PHP 데이터 개체)는 데이터베이스에서 전체 텍스트 검색을 수행하는 간단하면서도 강력한 방법을 제공합니다. 이 기사에서는 PHP와 PDO를 사용하여 전체 텍스트 검색을 구현하는 방법을 소개하고 프로세스를 시연하는 몇 가지 샘플 코드를 제공합니다.
먼저 PDO를 사용하기 전에 데이터베이스 연결이 올바르게 구성되었는지 확인해야 합니다. 이는 PDO 생성자에 올바른 데이터베이스 드라이버, 호스트 이름, 데이터베이스 이름, 사용자 이름 및 비밀번호를 전달하여 수행할 수 있습니다.
다음으로 애플리케이션에서 전체 텍스트 검색 쿼리를 만들어야 합니다. 이를 달성하기 위해 MATCH AGAINST 문을 사용할 수 있습니다. MATCH AGAINST 문은 데이터베이스 테이블에서 지정된 검색 표현식과 일치하는 행을 검색하는 데 사용됩니다. 다음은 데이터베이스에서 전체 텍스트 검색 쿼리를 수행하는 방법을 보여주는 샘플 코드입니다.
$searchTerm = "apple"; // 创建并执行全文搜索查询 $query = "SELECT * FROM products WHERE MATCH(product_name) AGAINST(:searchTerm IN BOOLEAN MODE)"; $stmt = $pdo->prepare($query); $stmt->bindParam(':searchTerm', $searchTerm, PDO::PARAM_STR); $stmt->execute(); $results = $stmt->fetchAll(PDO::FETCH_ASSOC); // 输出搜索结果 foreach ($results as $result) { echo $result['product_name'] . "<br>"; }
위 코드에서는 먼저 키워드 "apple"이 포함된 검색어 변수 $searchTerm
를 정의합니다. ". 그런 다음 SQL 쿼리를 생성하고 bindParam
을 사용하여 검색어 변수를 바인딩했습니다. 쿼리에서는 MATCH(product_name)
를 사용하여 검색할 열을 지정하고 AGAINST
절을 사용하여 검색 표현식을 지정합니다. 마지막으로 쿼리를 실행하고 결과 배열을 반복하여 검색 결과를 출력합니다. $searchTerm
,它包含我们要搜索的关键词 "apple"。然后,我们创建了一个SQL查询,并使用 bindParam
绑定搜索术语变量。在查询中,我们使用 MATCH(product_name)
来指定要搜索的列,并使用 AGAINST
子句指定搜索表达式。最后,我们执行查询并通过循环遍历结果数组来输出搜索结果。
在上述示例中,IN BOOLEAN MODE
表示我们将使用布尔搜索模式来执行搜索。这意味着我们可以在搜索表达式中使用 +
符号来指示必须包含某些关键词,使用 -
符号来指示必须不包含某些关键词,以及使用 *
IN BOOLEAN MODE
는 부울 검색 모드를 사용하여 검색을 수행한다는 의미입니다. 즉, 검색 표현식에서 +
표기법을 사용하여 특정 키워드를 포함해야 함을 나타내고, -
표기법을 사용하여 특정 키워드를 제외해야 함을 나타냅니다. 모든 문자와 일치하는 *
와일드카드 문자입니다. 이는 전체 텍스트 검색을 더욱 유연하고 강력하게 만듭니다. 전체 텍스트 검색 외에도 PDO를 사용하여 삽입, 업데이트, 삭제와 같은 다른 유형의 데이터베이스 쿼리를 수행할 수도 있습니다. 다음은 이러한 작업을 수행하는 방법을 보여주는 몇 가지 샘플 코드입니다. // 插入数据 $query = "INSERT INTO products (product_name, price) VALUES (:productName, :price)"; $stmt = $pdo->prepare($query); $stmt->bindParam(':productName', $productName, PDO::PARAM_STR); $stmt->bindParam(':price', $price, PDO::PARAM_INT); $stmt->execute(); // 更新数据 $query = "UPDATE products SET price = :newPrice WHERE product_name = :productName"; $stmt = $pdo->prepare($query); $stmt->bindParam(':newPrice', $newPrice, PDO::PARAM_INT); $stmt->bindParam(':productName', $productName, PDO::PARAM_STR); $stmt->execute(); // 删除数据 $query = "DELETE FROM products WHERE product_name = :productName"; $stmt = $pdo->prepare($query); $stmt->bindParam(':productName', $productName, PDO::PARAM_STR); $stmt->execute();
위 내용은 PHP 및 PDO: 데이터베이스에서 전체 텍스트 검색을 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!