Gunakan parameter untuk memasukkan data ke dalam pangkalan data Access
Memasukkan data pangkalan data Access secara terus menggunakan parameter berkod keras boleh menyebabkan masalah, terutamanya apabila bekerja dengan teks yang mengandungi petikan tunggal. Untuk menyelesaikan masalah ini, anda boleh menggunakan parameter dalam pertanyaan dan bukannya nilai rentetan langsung.
Langkah 1: Gantikan parameter berkod keras dengan ruang letak
Dalam kod yang disediakan, gantikan setiap parameter berkod keras dalam pertanyaan INSERT dengan ruang letak yang diawali dengan "@". Contohnya:
<code>cmd.CommandText = "INSERT INTO bookRated([title], [rating], [review], [frnISBN], [frnUserName])VALUES('@title', '@rating','@review','@ISBN', '@userName')";</code>
Langkah 2: Tambahkan OleDbParameters pada DbCommand
Buat contoh OleDbParameter dan tambahkannya pada sifat DbCommand.Parameters. Nama parameter hendaklah sepadan dengan nama pemegang tempat yang digunakan dalam pertanyaan:
<code>cmd.Parameters.AddRange(new OleDbParameter[] { new OleDbParameter("@title", title), new OleDbParameter("@rating", rating), ... });</code>
Kod diubah suai:
<code>[WebMethod] public void bookRatedAdd(string title, int rating, string review, string ISBN, string userName) { using (OleDbConnection conn = new OleDbConnection( "Provider=Microsoft.Jet.OleDb.4.0;"+ "Data Source="+Server.MapPath("App_Data\BookRateInitial.mdb")); { conn.Open(); // DbCommand 也实现了 IDisposable 接口 using (OleDbCommand cmd = conn.CreateCommand()) { // 使用占位符创建命令 cmd.CommandText = "INSERT INTO bookRated "+ "([title], [rating], [review], [frnISBN], [frnUserName]) "+ "VALUES(@title, @rating, @review, @isbn, @username)"; // 添加命名参数 cmd.Parameters.AddRange(new OleDbParameter[] { new OleDbParameter("@title", title), new OleDbParameter("@rating", rating), // ... 其他参数 }); // 执行 cmd.ExecuteNonQuery(); } } }</code>
Dengan menggunakan parameter, pangkalan data boleh mengendalikan aksara khas dengan betul seperti petikan tunggal, sekali gus memastikan integriti data.
Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Data dengan Selamat ke dalam Pangkalan Data Akses Menggunakan Parameter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!