Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mencipta Contoh Kod MySQL PHP yang Selamat dan Bebas Ralat?

Bagaimana untuk Mencipta Contoh Kod MySQL PHP yang Selamat dan Bebas Ralat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-14 03:30:10870semak imbas

How to Create a Secure and Error-Free PHP MySQL Code Sample?

Sampel Kod Sempurna Menggunakan Sambungan MySQL

Masalah:

Dalam usaha untuk mencipta sumber pembelajaran komuniti untuk pertanyaan pangkalan data PHP yang selamat dan bebas ralat, masalah hipotetikal ini membentangkan tugas menjana sampel kod yang sempurna menggunakan sambungan MySQL. Matlamatnya adalah untuk menangani isu biasa seperti suntikan SQL, pelaporan ralat dan suntikan XSS.

Penyelesaian:

Untuk menangani kerumitan pengendalian input pengguna dan memastikan data integriti, penyelesaian yang disediakan mengutamakan keselamatan dan kesederhanaan.

<?php

header('Content-type: text/html; charset=utf-8');
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);

$config = array(
    'host' => '127.0.0.1',
    'user' => 'my_user',
    'pass' => 'my_pass',
    'db' => 'my_database'
);

$connection = @mysql_connect($config['host'], $config['user'], $config['pass']);

if (!$connection) {
    trigger_error('Unable to connect to database: ' . mysql_error(), E_USER_ERROR);
}

if (!mysql_select_db($config['db'])) {
    trigger_error('Unable to select db: ' . mysql_error(), E_USER_ERROR);
}

if (!mysql_set_charset('utf8')) {
    trigger_error('Unable to set charset for db connection: ' . mysql_error(), E_USER_ERROR);
}

$result = mysql_query(
    'UPDATE tablename SET name = "'
    . mysql_real_escape_string($_POST['name'])
    . '" WHERE id = "'
    . mysql_real_escape_string($_POST['id']) . '"'
);

if ($result) {
    echo htmlentities($_POST['name'], ENT_COMPAT, 'utf-8') . ' updated.';
} else {
    trigger_error('Unable to update db: ' . mysql_error(), E_USER_ERROR);
}

Sampel kod ini merangkumi kunci berikut prinsip:

  • Mengendalikan set aksara unikod untuk julat jenis data yang lebih luas.
  • Menggunakan perbandingan longgar untuk meningkatkan kebolehbacaan.
  • Mewujudkan sambungan pangkalan data dan memilih yang khusus pangkalan data untuk operasi.
  • Perlindungan terhadap suntikan SQL dengan melepaskan input pengguna menggunakan mysql_real_escape_string().
  • Mengendalikan ralat dengan anggun menggunakan trigger_error() sekiranya berlaku kegagalan, sambil menyekat mesej ralat dalam mod pengeluaran.
  • Mengoutputkan mesej yang dimaksudkan apabila kemas kini pangkalan data berjaya diselesaikan.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Contoh Kod MySQL PHP yang Selamat dan Bebas Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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