매개변수를 사용하여 Access 데이터베이스에 데이터 삽입
하드 코딩된 매개변수를 사용하여 Access 데이터베이스 데이터를 직접 삽입하면 특히 작은따옴표가 포함된 텍스트로 작업할 때 문제가 발생할 수 있습니다. 이 문제를 해결하려면 직접 문자열 값 대신 쿼리에 매개 변수를 사용할 수 있습니다.
1단계: 하드코딩된 매개변수를 자리 표시자로 교체
제공된 코드에서 INSERT 쿼리의 하드코딩된 각 매개변수를 "@" 접두사가 붙은 자리 표시자로 바꿉니다. 예:
<code>cmd.CommandText = "INSERT INTO bookRated([title], [rating], [review], [frnISBN], [frnUserName])VALUES('@title', '@rating','@review','@ISBN', '@userName')";</code>
2단계: DbCommand에 OleDbParameters 추가
OleDbParameter 인스턴스를 생성하고 DbCommand.Parameters 속성에 추가합니다. 매개변수 이름은 쿼리에 사용된 자리 표시자 이름과 일치해야 합니다.
<code>cmd.Parameters.AddRange(new OleDbParameter[] { new OleDbParameter("@title", title), new OleDbParameter("@rating", rating), ... });</code>
수정된 코드:
<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>
매개변수를 사용하면 데이터베이스에서 작은따옴표와 같은 특수 문자를 올바르게 처리할 수 있으므로 데이터 무결성이 보장됩니다.
위 내용은 매개 변수를 사용하여 Access 데이터베이스에 데이터를 안전하게 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!