ホームページ  >  に質問  >  本文

SQL ステートメントを知らなくてもデータベースから結果セットのメタデータを取得する

<p>PHP と HTML を使用してデータベースを作成しました。データベースに接続しています。ユーザーに SQL ステートメント全体を入力するように依頼して、データベースからデータを取得する方法があるかどうか疑問に思っています。 $row['id']</p> を言わずにデータを取得する方法に非常に興味があります。 <p>議論のために、彼らは列と ID、そしてデータベースに関するすべてを知っているでしょう。 </p> <p>私がこれまでに見たことは、データにアクセスする前にどの列がクエリされているかを知る必要があるということです。 </p>
P粉506963842P粉506963842434日前524

全員に返信(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
  • キャンセル返事