>  Q&A  >  본문

SQL 문을 모르고 데이터베이스에서 결과 집합 메타데이터를 검색합니다.

<p>PHP와 HTML을 사용하여 데이터베이스를 만들었습니다. 데이터베이스에 연결되어 있습니다. 사용자에게 전체 SQL 문을 입력하도록 요청하여 데이터베이스에서 데이터를 검색하는 방법이 있는지 궁금합니다. $row['id']</p> 라고 말하지 않고 데이터를 얻는 방법에 정말 관심이 있습니다. <p>논쟁의 편의를 위해 그들은 열과 ID, 그리고 데이터베이스에 관한 모든 것을 알고 있을 것입니다. </p> <p>제가 본 모든 것은 데이터에 액세스하기 전에 어떤 열이 쿼리되고 있는지 알아야 한다는 것입니다. </p>
P粉506963842P粉506963842434일 전523

모든 응답(1)나는 대답할 것이다

  • P粉674757114

    P粉6747571142023-09-05 11:18:10

    사용자가 사용할 SQL 문을 제공하려면 원하는 테이블과 열의 이름을 알아야 합니다.

    테이블을 쿼리하여 information_schema.COLUMNS테이블 및 열 이름과 데이터 유형을 찾을 수 있습니다.

    또는 쿼리를 실행한 후 열 메타데이터를 가져올 수 있습니다. PDO의 경우 $stmt->getColumMeta($columnNumber);를 사용하세요. mysqli를 사용하면 이와 같이 ->result_metadata()를 사용합니다(디버깅되지 않음).

    으아악

    이것은 ->fetch_field()를 사용하여 결과 집합의 각 열에 대한 많은 유용한 정보를 얻습니다.

    그러나 사용자에게 SQL 문을 제공하도록 요청하는 것은 큰 보안 위험입니다. 사용자가 SQL 문을 제공한다고 신뢰하는 경우 사용자가 데이터를 손상시키지 않을 것이라고 신뢰해야 합니다. 시스템이 글로벌 인터넷에 열려 있으면 데이터가 손실됩니다. 때때로 사람들은 나에게 이것을 어떻게 알았는지 묻습니다.

    회신하다
    0
  • 취소회신하다