PHP MySQL insertar datos múltiples
Utilice MySQLi y MySQL DOP para insertar datos múltiples
mysqli_multi_query función () se utiliza para ejecutar varias instrucciones SQL.
Los siguientes ejemplos son para "MyGuests" mesa agregó tres nuevos registros:
Ejemplos (MySQLi - Orientado a Objetos)
$ Nombredeservidor = "localhost";
$ Nombre de usuario = "nombre de usuario";
$ Contraseña = "contraseña";
$ DBName = "myDB";
// Crear vínculo
$ Conn = new mysqli ($ nombre de servidor, $ usuario, $ password, $ nombredb);
// Comprobar enlaces
if ($ conn-> connect_error) {
die ( "Error de conexión:" $ conn-> connect_error.);
}
$ Sql = "INSERT INTO MyGuests (nombre, apellido, correo electrónico)
VALUES ( 'John', 'Doe', '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (nombre, apellido, correo electrónico)
VALUES ( 'María', 'Moe', '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (nombre, apellido, correo electrónico)
VALUES ( 'Julie', 'Dooley', '[email protected]') ";
if ($ conn-> consulta múltiple ($ sql) === TRUE) {
echo "El nuevo disco está insertado correctamente";
} Else {
. Echo "Error:" $ sql "<br>" $ conn-> error; ..
}
$ Conn-> close ();
?>
Tenga en cuenta que cada sentencia SQL debe estar separado por un punto y coma. |
Ejemplos (MySQLi - orientado al proceso)
$ Nombredeservidor = "localhost";
$ Nombre de usuario = "nombre de usuario";
$ Contraseña = "contraseña";
$ DBName = "myDB";
// Crear vínculo
$ Conn = mysqli_connect ($ nombre de servidor, $ usuario, $ password, $ nombredb);
// Comprobar enlaces
if (! $ conn) {
die ( "Error de conexión:" mysqli_connect_error ().);
}
$ Sql = "INSERT INTO MyGuests (nombre, apellido, correo electrónico)
VALUES ( 'John', 'Doe', '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (nombre, apellido, correo electrónico)
VALUES ( 'María', 'Moe', '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (nombre, apellido, correo electrónico)
VALUES ( 'Julie', 'Dooley', '[email protected]') ";
si (mysqli_multi_query ($ conn, $ sql)) {
echo "El nuevo disco está insertado correctamente";
} Else {
. Echo "Error:" $ sql "<br>" mysqli_error ($ conn); ..
}
mysqli_close ($ conn);
?>
Los ejemplos de (DOP)
$ Nombredeservidor = "localhost";
$ Nombre de usuario = "nombre de usuario";
$ Contraseña = "contraseña";
$ DBName = "myDBPDO";
try {
$ Conn = new PDO ( "mysql: host = $ nombre de servidor; dbname = $ dbname", $ usuario, $ password);
// Establecer el modo de error DOP a excepción
$ Conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
// Iniciar transacción
$ Conn-> beginTransaction ();
// Instrucción SQL
$ Conn-> exec ( "INSERT INTO MyGuests (nombre, apellido, correo electrónico)
VALUES ( 'John', 'Doe', '[email protected]') ");
$ Conn-> exec ( "INSERT INTO MyGuests (nombre, apellido, correo electrónico)
VALUES ( 'María', 'Moe', '[email protected]') ");
$ Conn-> exec ( "INSERT INTO MyGuests (nombre, apellido, correo electrónico)
VALUES ( 'Julie', 'Dooley', '[email protected]') ");
// Confirmar la transacción
$ Conn-> commit ();
echo "El nuevo disco está insertado correctamente";
}
captura (PDOException $ e)
{
// Si la reversión falla
$ Conn-> rollback ();
.. Echo $ sql "<br>" $ e-> getMessage ();
}
$ Conn = null;
?>
Use declaraciones preparadas
extensión mysqli proporciona una segunda forma de insertar declaraciones.
Preparamos estados y parámetros ligados.
extensión mysql puede transmitir datos sin una declaración o una consulta a la base de datos mysql. Puede asociarse o variables "bind" a las columnas.
Ejemplos (MySQLi utilizando declaraciones preparadas)
$ Nombredeservidor = "localhost";
$ Nombre de usuario = "nombre de usuario";
$ Contraseña = "contraseña";
$ DBName = "myDB";
// Crear conexión
$ Conn = new mysqli ($ nombre de servidor, $ usuario, $ password, $ nombredb);
// La conexión de prueba
if ($ conn-> connect_error) {
die ( "Error de conexión:" $ conn-> connect_error.);
} Else {
$ Sql = "INSERT INTO VALORES MyGuests (,, ???)";
// Para mysqli_stmt_prepare) objetos Statement (inicialización
$ Stmt = mysqli_stmt_init ($ conn);
// Declaración preparada
si (mysqli_stmt_prepare ($ stmt, $ sql)) {
// parámetros Bind
mysqli_stmt_bind_param ($ stmt, 'sss', $ apellido, apellido $, $ correo electrónico);
// establecer parámetros y realizar
$ Nombre = 'John';
Apellido $ = 'Doe';
$ Email = '[email protected]';
mysqli_stmt_execute ($ stmt);
$ Nombre = 'María';
Apellido del $ = 'Moe';
$ Email = '[email protected]';
mysqli_stmt_execute ($ stmt);
$ Nombre = 'Julie';
Apellido del $ = 'Dooley';
$ Email = '[email protected]';
mysqli_stmt_execute ($ stmt);
}
}
?>
Podemos ver en el ejemplo anterior usando un sistema modular para tratar con el problema. Podemos crear un bloque de código para facilitar la lectura y la gestión.
Nota parámetros ligados. Veamos mysqli_stmt_bind_param () Código:
mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);
Los argumentos de la unión a una consulta y pasar parámetros a la base de datos. El segundo parámetro es "sss". La siguiente lista muestra el tipo del parámetro. s personaje le dice a mysql argumento es una cadena.
Puede ser los cuatro parámetros siguientes:
- i - número entero
- d - de doble precisión número de coma flotante
- s - la cuerda
- b - un valor booleano
Cada tipo de parámetro debe especificarse para garantizar la seguridad de datos. Por tipo de juicio puede reducir el riesgo de vulnerabilidad de inyección SQL.