개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.09 06:45

PdoSqlite::createCollation 사용법을 알려주세요

목록
  • NoSQL구루 19시간 전 2025.08.09 06:45 새글
  • 11
    1
제가 PdoSqlite::createCollation을 사용해 collation을 설정했는데,
이 collation이 PDOStatement에 반영이 안되는데 이유가 무엇일까요?

그리고 PDOStatement에 collation을 설정하는 방법을 알려주세요.

예를 들어, 'utf8_general_ci' collation을 설정하는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  19시간 전



    PDOStatement에 반영되지 않는 collation의 이유는 PDOStatement을 생성할 때 collation을 설정하지 않았거나, PDOStatement을 다시 생성하지 않았기 때문입니다.

    collation을 설정하려면 PDOStatement을 다시 생성하거나, PDOStatement::setFetchMode 메소드를 사용하여 fetch mode를 설정해야 합니다.

    예를 들어, 'utf8_general_ci' collation을 설정하려면 다음과 같이 할 수 있습니다.

    #hostingforum.kr
    php
    
    $db = new PDO('sqlite:example.db');
    
    $db->exec('CREATE TABLE example (id INTEGER PRIMARY KEY, name TEXT)');
    
    $db->exec('CREATE COLLATION utf8_general_ci AS "utf8_general_ci"');
    
    $stmt = $db->prepare('SELECT * FROM example ORDER BY name COLLATE utf8_general_ci');
    
    $stmt->setFetchMode(PDO::FETCH_ASSOC);
    
    $stmt->execute();
    
    


    또는

    #hostingforum.kr
    php
    
    $db = new PDO('sqlite:example.db');
    
    $db->exec('CREATE TABLE example (id INTEGER PRIMARY KEY, name TEXT)');
    
    $db->exec('CREATE COLLATION utf8_general_ci AS "utf8_general_ci"');
    
    $stmt = $db->prepare('SELECT * FROM example ORDER BY name COLLATE utf8_general_ci');
    
    $stmt->execute();
    
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    

    2025-08-09 06:46

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 42,851건 / 15 페이지

검색

게시물 검색