Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Dapatkan Data dengan Selamat daripada MySQL Menggunakan Penyata Disediakan dalam PHP?

Bagaimanakah Saya Boleh Dapatkan Data dengan Selamat daripada MySQL Menggunakan Penyata Disediakan dalam PHP?

Susan Sarandon
Lepaskan: 2024-12-20 13:07:10
asal
349 orang telah melayarinya

How Can I Securely Retrieve Data from MySQL Using Prepared Statements in PHP?

Secure MySQL Prepared Statements dalam PHP

Apabila bekerja dengan pertanyaan SQL dalam PHP, adalah penting untuk mengutamakan keselamatan dengan menggunakan pernyataan yang disediakan. Begini cara untuk mencipta pernyataan selamat yang disediakan untuk mendapatkan semula lajur menggunakan input daripada parameter URL:

Gunakan MySQL Improved (MySQLi):

$db = new mysqli("host", "user", "pw", "database");
$stmt = $db->prepare("SELECT * FROM mytable WHERE userid = ? AND category = ? ORDER BY id DESC");
$stmt->bind_param('ii', intval($_GET['userid']), intval($_GET['category']));
$stmt->execute();

$stmt->store_result();
$stmt->bind_result($column1, $column2, $column3);

while ($stmt->fetch()) {
    echo "col1=$column1, col2=$column2, col3=$column3 \n";
}

$stmt->close();
Salin selepas log masuk

Sebagai alternatif, anda boleh menggunakan fungsi pembantu ini untuk memudahkan pengikatan tatasusunan bersekutu:

function stmt_bind_assoc (&$stmt, &$out) {
    $data = mysqli_stmt_result_metadata($stmt);
    $fields = array();
    $out = array();

    $fields[0] = $stmt;
    $count = 1;

    while ($field = mysqli_fetch_field($data)) {
        $fields[$count] = &$out[$field->name];
        $count++;
    }
    call_user_func_array(mysqli_stmt_bind_result, $fields);
}
Salin selepas log masuk

Untuk digunakan ia:

$stmt->store_result();

$resultrow = array();
stmt_bind_assoc($stmt, $resultrow);

while ($stmt->fetch()) {
    print_r($resultrow);
}
Salin selepas log masuk

Peningkatan Prestasi

Pernyataan yang disediakan meningkatkan prestasi dengan meminimumkan keperluan untuk menghurai semula dan merancang semula pertanyaan. Walau bagaimanapun, kesan pada kelajuan mungkin tidak ketara jika digunakan hanya beberapa kali pada satu halaman. Namun begitu, ia kekal sebagai amalan yang disyorkan untuk meningkatkan keselamatan dan perlindungan terhadap kelemahan suntikan SQL.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Data dengan Selamat daripada MySQL Menggunakan Penyata Disediakan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan