English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderá a insertar registros en tablas de MySQL utilizando PHP.
Ahora, ya ha entendido cómo crear bases de datos y tablas en MySQL. En este tutorial, aprenderá a ejecutar consultas SQL para insertar registros en las tablas.
“INSERT INTO”“语句用于在数据库表中插入新行。”
“让我们使用带有适当值的INSERT INTO语句来执行一个SQL查询,之后我们将通过将该INSERT查询传递给PHP mysqli_query()函数来执行该INSERT查询,以便在表中插入数据。 下面是一个示例,它通过指定”“first_name”“,”“last_name”“和”“email”“字段的值向”“persons”“表插入新行。”
<?php $link = mysqli_connect("localhost", "root", "", "demo"); // Check connection if($link === false){ “die("错误:无法连接。 " . mysqli_connect_error());” } //尝试执行插入查询 “$sql = "INSERT INTO persons (first_name if(mysqli_query($link, $sql)){ echo "记录插入成功。"; } echo "error: cannot execute $sql." . mysqli_error($link); } //关闭连接 mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //Check connection if($mysqli === false){ ->connect_error); } //尝试执行插入查询 “$sql = "INSERT INTO persons (first_name if($mysqli-query($sql) === true) echo "记录插入成功。"; } echo "error: cannot execute $sql." . $mysqli->error; } //关闭连接 $mysqli->close(); ?>
<?php try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //将PDO错误模式设置为异常 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ ->getMessage()); } //尝试执行插入查询 try{ “$sql = "INSERT INTO persons (first_name $pdo-“>exec($sql);” echo "记录插入成功。"; } catch(PDOException $e){ die("错误:无法执行 $sql. " . $e->getMessage()); } //关闭连接 unset($pdo); ?>
“如果您还记得”“上一章中的内容”“,则”“id”“字段标记有AUTO_INCREMENT标志。该修饰符告诉MySQL,如果未指定该值,则通过将前一个值增加”1“来自动为该字段分配一个值。”
“您也可以一次通过单个插入查询将多行插入到表中。为此,请在INSERT INTO语句中包括多个列值列表,其中每行的列值必须用括号括起来并用逗号分隔。”
“让我们在”“persons”“表中再插入几行,如下所示:”
<?php $link = mysqli_connect("localhost", "root", "", "demo"); //Check connection if($link === false){ “die("错误:无法连接。 " . mysqli_connect_error());” } //尝试执行插入查询 “$sql = "INSERT INTO persons (first_name John Clark John Harry if(mysqli_query($link, $sql)){ echo "Record added successfully."; } echo "error: cannot execute $sql." . mysqli_error($link); } //关闭连接 mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //Check connection if($mysqli === false){ ->connect_error); } //尝试执行插入查询 “$sql = "INSERT INTO persons (first_name John Clark John Harry if($mysqli-query($sql) === true) echo "记录插入成功。"; } echo "error: cannot execute $sql." . $mysqli->error; } //关闭连接 $mysqli->close(); ?>
<?php try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //将PDO错误模式设置为异常 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ “die("错误:无法连接。 " . $e”->getMessage()); } //尝试执行插入查询 try{ “$sql = "INSERT INTO persons (first_name John Clark John Harry $pdo-“>exec($sql);” echo "记录插入成功。"; } catch(PDOException $e){ die("错误:无法执行 $sql. " . $e->getMessage()); } //关闭连接 unset($pdo); ?>
//“localhost”/“phpmyadmin”/“),并检查”demostraciónla base de datospersonasdatos de la tabla. NotarásIDEl valor de la columna se obtiene sumando el valor anteriorIDel valor aumenta1para asignar automáticamente.
注意: Las declaraciones SQL pueden contener una cantidad ilimitada de saltos de línea, siempre y cuando cualquier salto de línea no destruya palabras clave, valores, expresiones, etc.
En la sección anterior, aprendimos cómo insertar datos desde un script PHP a la base de datos. Ahora, veremos cómo insertar datos desde una base de datos obtenida de un formulario HTML. Creemos un formulario HTML que se puede usar para insertar nuevos registros enpersonastabla.
Este es un formulario HTML simple que contiene tres campos de texto<input>un campo y un botón de envío.
!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Agregar Registro de Formulario</title> </head> <form action="insert.php" method="post"> <p> <label for="firstName">Nombre:</label> <input type="text" name="first_name" id="firstName"> </p> <p> <label for="lastName">Apellido:</label> <input type="text" name="last_name" id="lastName"> </p> <p> <label for="emailAddress">Dirección de correo electrónico:</label> <input type="text" name="email" id="emailAddress"> </p> <input type="submit" value="Enviar"> </form> </html>Prueba y observa‹/›
En el ejemplo anterior, cuando el usuario hace clic en el botón de envío del formulario HTML, los datos del formulario se envían al archivo "insert.php". El archivo "insert.php" se conecta al servidor de base de datos MySQL, utiliza la variable $_REQUEST de PHP para recuperar los campos del formulario y finalmente ejecuta una consulta de inserción para agregar el registro. Este es el código completo de nuestro archivo "insert.php":
<?php $link = mysqli_connect("localhost", "root", "", "demo"); //Check connection if($link === false){ die("ERROR: Could not connect." . mysqli_connect_error()); } //Escape user input for safety $first_name = mysqli_real_escape_string($link, $_REQUEST['first_name']); $last_name = mysqli_real_escape_string($link, $_REQUEST['last_name']); $email = mysqli_real_escape_string($link, $_REQUEST['email']); //尝试执行插入查询 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('$first_name', '$last_name', '$email')"; if(mysqli_query($link, $sql)){ echo "Record added successfully."; } echo "error: cannot execute $sql." . mysqli_error($link); } //关闭连接 mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //Check connection if($mysqli === false){ die("error: cannot connect." . $mysqli->connect_error); } //Escape user input for safety $first_name = $mysqli->real_escape_string($_REQUEST['first_name']); $last_name = $mysqli->real_escape_string($_REQUEST['last_name']); $email = $mysqli->real_escape_string($_REQUEST['email']); //尝试执行插入查询 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('$first_name', '$last_name', '$email')"; if($mysqli-query($sql) === true) echo "记录插入成功。"; } echo "error: cannot execute $sql." . $mysqli->error; } //关闭连接 $mysqli->close(); ?>
<?php try{ $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", ""); //将PDO错误模式设置为异常 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("错误:无法连接。" . $e->getMessage()); } //尝试执行插入查询 try{ //CREATE PREPARE语句 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES (:first_name, :last_name, :email)"; $stmt = $pdo->prepare($sql); //将参数绑定到语句 $stmt->bindParam(':first_name', $_REQUEST['first_name']); $stmt->bindParam(':last_name', $_REQUEST['last_name']); $stmt->bindParam(':email', $_REQUEST['email']); //执行准备好的语句 $stmt->execute(); echo "记录插入成功。"; } catch(PDOException $e){ die("错误:无法执行 $sql. " . $e->getMessage()); } // Close connection unset($pdo); ?>
在下一章中,我们将扩展此插入查询示例,并通过实现准备好的语句来进一步提高安全性和性能,从而将其进一步发展。
注意:mysqli_real_escape_string()函数转义字符串中的特殊字符并创建合法的SQL字符串以提供防止SQL注入的安全性。
这是在MySQL数据库表中插入表单数据的非常基本的示例。您可以扩展此示例,使其更具交互性,方法是将验证添加到用户输入中,然后再将其插入数据库表。请查看有关PHP表单验证的教程,以了解有关使用PHP 清理和验证用户输入的更多信息。