¿Has oído hablar de ADO? Es una tecnología de Microsoft que permite la conexión y manipulación de datos en una base de datos. En este artículo, te enseñamos cómo utilizar ADO para insertar registros en una base de datos de forma sencilla y eficiente. ¡No te lo pierdas!
En este tutorial, veremos un ejemplo de cómo insertar nuevos registros en una tabla de base de datos utilizando ASP y ADO. Necesitamos entender cómo usar el SQL INSERT INTO
declaración y cómo integrarla con ADO.
Declaración SQL INSERT INTO
Lenguaje de consulta estructurado, también conocido como sqles el lenguaje estándar utilizado con la mayoría de las aplicaciones de bases de datos modernas. SQL nos proporciona un mecanismo para seleccionar, insertar, actualizar y modificar registros en una base de datos.
En este resumen, nos vamos a centrar en el SQL INSERT INTO
declaración. Para obtener información más detallada sobre SQL, visite la sección SQL de este sitio. Hay docenas de tutoriales para ayudarlo a comprender mejor el lenguaje SQL.
Sintaxis
INSERT INTO tableName (field1, field2, field3)
VALUES ('value1', 'value2', 'value3')
OR
INSERT INTO tableName VALUES ('value1', 'value2', 'value3')
En el ejemplo anterior, el INSERT INTO
declaración inserta tres valores en tres campos. Si inserta los valores desordenados, deberá usar el primer ejemplo.
Sin embargo, si usted no especificar los nombres de campo en la declaración, los valores se insertan en el orden en que se presentan como en el segundo ejemplo.
Así que el siguiente paso es echar un vistazo a cómo incorporamos el SQL INSERT INTO
declaración en nuestro código ASP/ADO.
Uso del objeto de conexión
<%
Dim oConn, ds, sql
ds = "Driver={MySQL ODBC 3.51 Driver};SERVER=db-hostname;DATABASE=db-name;UID=userID;PWD=password"
sql = "INSERT INTO employees (empName, empTitle) VALUES ('Josh Walker', 'Manager')"
Set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open ds
oConn.Execute sql
oConn.close
Set oConn=nothing
%>
El ejemplo anterior simplemente crea el objeto Connection que abre la base de datos e inserta los registros en campos específicos de la tabla de acuerdo con el SQL INSERT INTO
declaración.
Agregar nuevo formulario
Un enfoque común para insertar información en su base de datos es utilizar un formulario en una página web. El usuario rellena el formulario y lo envía. Usted envía la información del formulario a una página ASP que lee en forma de valores y inserciones datos en la base de datos.
Tenga en cuenta que debe validar la entrada de su usuario en la página de origen antes de insertar información en su base de datos. Este es un ejemplo de una página ASP utilizada para recopilar la información dentro de un formulario.
<!DOCTYPE html>
<html>
<head>
<title>Employee Insert</title>
</head>
<body>
<form method="post" action="employeeInsert.asp">
<table>
<tr>
<td>Employee Name:</td>
<td><input name="empName"></td>
</tr>
<tr>
<td>Employee Title:</td>
<td><input name="empTitle"></td>
</tr>
</table>
<br /><br />
<input type="submit" value="Add New">
<input type="reset" value="Cancel">
</form>
</body>
</html>
Un usuario simplemente necesita visitar el página del formulario de solicitudcomplete la información y haga clic en el Agregar nuevo botón. El usuario será redirigido a la employeeInsert.asp
página donde estará la información del formulario recogido y un nuevo récord será insertado en la base de datos. Aquí hay algunos ejemplos del código ASP/ADO para el employeeInsert.asp
página.
<%
Dim oConn, ds, sql, qName, qTitle
qName = Request.Form("empName")
qTitle = Request.Form("empTitle")
ds = "Driver={MySQL ODBC 3.51 Driver};SERVER=db-hostname;DATABASE=db-name;UID=userID;PWD=password"
sql = "INSERT INTO employees (empName, empTitle) VALUES ('" & qName & "', '" & qTitle & "')"
Set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open ds
oConn.Execute sql
If err<>0 then
Response.Write("There was an error!")
Else
Response.Write("Record Added!")
End if
oConn.close
Set oConn=nothing
%>
Uso de parámetros
Al insertar datos en una base de datossiempre es una buena práctica parámetros de uso para que la información proporcionada por la entrada del usuario se trate como literal. Esto es para que puedas prevenir un ataque de inyección SQL por un usuario que manipula el Form
datos e incluye código SQL no deseado.
<%
Dim oConn, oCmd, ds, sql, qName, qTitle
qName = Request.Form("empName")
qTitle = Request.Form("empTitle")
ds = "Driver={MySQL ODBC 3.51 Driver};SERVER=db-hostname;DATABASE=db-name;UID=userID;PWD=password"
sql = "INSERT INTO employees (empName, empTitle) VALUES (?,?)"
Set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open ds
Set oCmd = Server.CreateObject("ADODB.Command")
oCmd.ActiveConnection = oConn
oCmd.CommandText = sql
oCmd.CommandType = 1
oCmd.Parameters(0) = qName
oCmd.Parameters(1) = qTitle
oCmd.Execute()
If err<>0 then
Response.Write("There was an error!")
Else
Response.Write("Record Added!")
End if
oConn.close
Set oConn=nothing
%>