Dapatkan metadata set hasil daripada pangkalan data tanpa mengetahui pernyataan SQL
P粉506963842
P粉506963842 2023-09-04 14:18:17
0
1
456

Saya menggunakan PHP dan HTML dan mencipta pangkalan data. Saya disambungkan ke pangkalan data. Saya tertanya-tanya sama ada terdapat cara untuk mendapatkan semula data daripada pangkalan data dengan meminta pengguna memasukkan keseluruhan pernyataan SQL. Saya sangat berminat dengan cara mendapatkan data tanpa menyebut $row['id']

Demi hujah, mereka akan mengetahui lajur dan ID serta segala-galanya tentang pangkalan data.

Semua yang saya lihat ialah anda perlu mengetahui lajur yang sedang disoal sebelum anda boleh mengakses data.

P粉506963842
P粉506963842

membalas semua (1)
P粉674757114

Jika pengguna anda ingin menyediakan pernyataan SQL untuk digunakan, mereka mesti tahu nama jadual dan lajur yang mereka mahukan.

Anda boleh bertanyainformation_schema.COLUMNSjadual untuk mencari nama jadual dan lajur serta jenis data.

Sebagai alternatif, selepas melaksanakan pertanyaan, anda boleh mendapatkan metadata lajur. Untuk PDO, gunakan$stmt->getColumMeta($columnNumber);. Menggunakan mysqli gunakan->result_metadata()seperti ini (tidak debug).

$stmt = $mysqli->prepare("SELECT what,ever,else FROM table"); $stmt->execute(); $metadata = $stmt->result_metadata(); $column_count = $mysqli->field_count(); $column_names = []; for ($colnum = 0; $colnum < $column_count; $colnum++) { $field = $metadata->fetch_field(); $column_names [] = $field->name; } $metadata->close();

Ini menggunakan->fetch_field()untuk mendapatkan banyak maklumat berguna tentang setiap lajur dalam set hasil.

Tetapi meminta pengguna untuk memberikan anda pernyataan SQL adalah risiko keselamatan yang besar. Jika anda mempercayai pengguna untuk memberikan anda pernyataan SQL, anda juga mesti mempercayai mereka untuk tidak merosakkan atau merosakkan data anda. Jika sistem anda terbuka kepada internet global, anda akan kehilangan data. Kadang-kadang orang bertanya kepada saya bagaimana saya tahu ini.

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!