C# dengan MySQL: Menggunakan Parameter INSERT untuk Kemasukan Data Selamat
Dalam pengaturcaraan C#, memasukkan data ke dalam pangkalan data MySQL memerlukan pertimbangan yang teliti untuk mengelakkan kelemahan keselamatan. Panduan ini menangani isu pengikatan parameter dalam arahan INSERT, menyediakan penyelesaian yang selamat dan berkesan.
Masalahnya
Apabila menggunakan MySqlCommand, nyatakan parameter menggunakan kaedah Tambah tanpa menggunakan AddWithValue atau menghantar nama parameter yang betul boleh membawa kepada sisipan nilai nol atau ralat sintaks. Ini boleh menjejaskan integriti data dan mendedahkan aplikasi kepada serangan suntikan SQL.
Penyelesaian
Untuk memastikan pengikatan data selamat, terdapat dua pendekatan yang disyorkan:
Kaedah AddWithValue:
Dengan menggunakan Kaedah AddWithValue, anda boleh memasukkan nilai ke dalam parameter dengan selamat tanpa perlu risau tentang nama parameter atau penukaran jenis data.
string connString = ConfigurationManager.ConnectionStrings["default"].ConnectionString; MySqlConnection conn = new MySqlConnection(connString); conn.Open(); MySqlCommand comm = conn.CreateCommand(); comm.CommandText = "INSERT INTO room(person,address) VALUES(@person, @address)"; comm.Parameters.AddWithValue("@person", "Myname"); comm.Parameters.AddWithValue("@address", "Myaddress"); comm.ExecuteNonQuery(); conn.Close();
Menggunakan ? Pemegang tempat:
Sebagai alternatif, anda boleh menggunakan ? pemegang tempat dalam arahan INSERT dan tambah parameter seperti berikut:
string connString = ConfigurationManager.ConnectionStrings["default"].ConnectionString; MySqlConnection conn = new MySqlConnection(connString); conn.Open(); MySqlCommand comm = conn.CreateCommand(); comm.CommandText = "INSERT INTO room(person,address) VALUES(?person, ?address)"; comm.Parameters.Add("?person", "Myname"); comm.Parameters.Add("?address", "Myaddress"); comm.ExecuteNonQuery(); conn.Close();
Dengan menggunakan mana-mana pendekatan, anda boleh memasukkan data dengan selamat ke dalam pangkalan data MySQL, menghalang pemasukan nilai nol dan kelemahan suntikan SQL.
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Data dengan Selamat ke dalam MySQL Menggunakan C#: AddWithValue vs. Pemegang Tempat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!