개발자 Q&A

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

2025.05.14 12:56

PDO::query 함수에 대한 질문

목록
  • 코딩테스트러버 1일 전 2025.05.14 12:56
  • 3
    1
제가 PDO::query 함수를 사용하여 SQL 쿼리를 실행할 때, 에러가 발생하는 경우를 처리하는 방법을 모르겠습니다.

예를 들어, SQL 쿼리가 실행 중에 오류가 발생할 경우, 에러 메시지를 출력하고 싶은데, 어떻게 해야하나요?

그리고 PDO::query 함수의 리턴 값은 무엇이며, 그 값을 어떻게 사용해야하죠?

또한, PDO::query 함수가 안전한지 궁금합니다. SQL 인젝션 공격에 취약한가요?

그리고 PDO::query 함수와 PDO::prepare 함수의 차이를 알고 싶습니다.

위의 문제를 해결해주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    PDO::query 함수는 SQL 쿼리를 실행할 때, 에러가 발생하는 경우를 처리하는 방법은 try-catch 블록을 사용하여 예외를 잡는 것입니다.

    #hostingforum.kr
    php
    
    try {
    
        $stmt = $pdo->query('SELECT * FROM users WHERE id = :id');
    
        $stmt->execute(['id' => 1]);
    
    } catch (PDOException $e) {
    
        echo '에러 메시지: ' . $e->getMessage();
    
    }
    
    


    PDO::query 함수의 리턴 값은 PDOStatement 객체입니다. 이 객체를 사용하여 쿼리의 결과를 가져올 수 있습니다.

    #hostingforum.kr
    php
    
    $stmt = $pdo->query('SELECT * FROM users');
    
    $result = $stmt->fetchAll();
    
    print_r($result);
    
    


    PDO::query 함수는 안전하지 않습니다. SQL 인젝션 공격에 취약할 수 있습니다. PDO::prepare 함수를 사용하는 것이 안전합니다.

    PDO::query 함수와 PDO::prepare 함수의 차이는 PDO::query 함수는 SQL 쿼리를 실행할 때, 쿼리문에 변수를 직접 삽입하는 반면, PDO::prepare 함수는 쿼리문과 변수를 분리하여 SQL 인젝션 공격을 방지합니다.

    #hostingforum.kr
    php
    
    // PDO::query 함수
    
    $stmt = $pdo->query('SELECT * FROM users WHERE id = ' . $_GET['id']);
    
    
    
    // PDO::prepare 함수
    
    $stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');
    
    $stmt->execute(['id' => $_GET['id']]);
    
    


    PDO::prepare 함수를 사용하는 것이 안전하고 권장되는 방법입니다.

    2025-05-14 12:57

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

검색

게시물 검색