English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, você aprenderá como inserir registros em tabelas do MySQL usando PHP.
Agora, você já entendeu como criar bancos de dados e tabelas no MySQL. Neste tutorial, você aprenderá como executar consultas SQL para inserir registros na tabela.
INSERT INTOusado para inserir novas linhas em uma tabela de banco de dados.
Vamos usar uma declaração INSERT INTO com valores apropriados para executar uma consulta SQL, e depois executaremos a consulta INSERT passando a consulta INSERT para a função PHP mysqli_query() para inserir dados na tabela. Aqui está um exemplo que especificafirst_name,last_nameeemailO valor do campo estápersonsInserir uma nova linha na tabela.
<?php $link = mysqli_connect("localhost", "root", "", "demo"); // Verificar a conexão if($link === false) {}} die("Erro: Não foi possível conectar. " . mysqli_connect_error()); } //尝试执行插入查询 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', '[email protected]')"; if(mysqli_query($link, $sql)){ echo "记录插入成功。"; } echo "Erro: Não é possível executar $sql." . mysqli_error($link); } //关闭连接 mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //Verificar a conexão if($mysqli === false) { die("ERROR: Could not connect. " . $mysqli->connect_error); } //尝试执行插入查询 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', '[email protected]')"; if($mysqli-query($sql) === true) { echo "记录插入成功。"; } echo "Erro: Não é possível executar $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("ERROR: Could not connect. " . $e->getMessage()); } //尝试执行插入查询 try{ $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', '[email protected]')"; $pdo->exec($sql); echo "记录插入成功。"; } catch(PDOException $e){ die("错误:无法执行 $sql. ". $e->getMessage()); } //关闭连接 unset($pdo); ?>
Se você se lembrarO conteúdo do capítulo anteriorentãoidO campo está marcado com o sinal AUTO_INCREMENT. Este modificador informa ao MySQL que, se esse valor não for especificado, o valor anterior será aumentado1para atribuir automaticamente um valor a esse campo.
Você também pode inserir várias linhas na tabela em uma única consulta de inserção. Para isso, inclua várias listas de valores de colunas na declaração INSERT INTO, onde cada linha de valores de coluna deve estar entre parênteses e separada por vírgulas.
Vamos empersonsInsira mais algumas linhas na tabela, conforme mostrado a seguir:
<?php $link = mysqli_connect("localhost", "root", "", "demo"); //Verificar a conexão if($link === false) {}} die("Erro: Não foi possível conectar. " . mysqli_connect_error()); } //尝试执行插入查询 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('John', 'Rambo', '[email protected]'), ('Clark', 'Kent', '[email protected]'), ('John', 'Carter', '[email protected]'), ('Harry', 'Potter', '[email protected]')"; if(mysqli_query($link, $sql)){ echo "Registro adicionado com sucesso."; } echo "Erro: Não é possível executar $sql." . mysqli_error($link); } //关闭连接 mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //Verificar a conexão if($mysqli === false) { die("ERROR: Could not connect. " . $mysqli->connect_error); } //尝试执行插入查询 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('John', 'Rambo', '[email protected]'), ('Clark', 'Kent', '[email protected]'), ('John', 'Carter', '[email protected]'), ('Harry', 'Potter', '[email protected]')"; if($mysqli-query($sql) === true) { echo "记录插入成功。"; } echo "Erro: Não é possível executar $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("Erro: Não foi possível conectar. " . $e->getMessage()); } //尝试执行插入查询 try{ $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('John', 'Rambo', '[email protected]'), ('Clark', 'Kent', '[email protected]'), ('John', 'Carter', '[email protected]'), ('Harry', 'Potter', '[email protected]')"; $pdo->exec($sql); echo "记录插入成功。"; } catch(PDOException $e){ die("错误:无法执行 $sql. ". $e->getMessage()); } //关闭连接 unset($pdo); ?>
Agora, vá para o phpMyAdmin (http://localhost//,exemplono banco de dadospessoalos dados da tabela. Você notaráIDo valor da coluna é calculado somando o valor anteriorIDo valor1automaticamente atribuído.
注意: As linhas de quebra podem ocorrer em qualquer quantidade dentro de uma instrução SQL, desde que nenhuma linha de quebra destrua palavras-chave, valores, expressões, etc.
No capítulo anterior, aprendemos como inserir dados em um banco de dados a partir de um script PHP. Agora, vamos ver como inserir dados em um banco de dados a partir de um formulário HTML. Vamos criar um formulário HTML que pode ser usado para inserir novos registros.pessoaltabela.
Este é um formulário HTML simples que contém três campos de texto<input>um campo e um botão de envio.
!DOCTYPE html> <html> head> <meta charset="UTF-8"> <title>Formulário de Adição de Registro</title> </head> <form action="insert.php" method="post"> <p> <label for="firstName">Nome:</label> <input type="text" name="first_name" id="firstName"> </p> <p> <label for="lastName">Sobrenome:</label> <input type="text" name="last_name" id="lastName"> </p> <p> <label for="emailAddress">Endereço de Email:</label> <input type="text" name="email" id="emailAddress"> </p> <input type="submit" value="Submit"> </form> </html>Teste e veja‹/›
No exemplo acima, quando o usuário clicar no botão de envio do formulário HTML, os dados do formulário serão enviados para o arquivo "insert.php". O arquivo "insert.php" se conecta ao servidor de banco de dados MySQL, usa a variável $_REQUEST do PHP para recuperar os campos do formulário e, finalmente, executa uma consulta de inserção para adicionar o registro. Este é o código completo do nosso arquivo "insert.php":
<?php $link = mysqli_connect("localhost", "root", "", "demo"); //Verificar a conexão if($link === false) {}} die("ERROR: Could not connect. " . mysqli_connect_error()); } //Para segurança, escapar a entrada do usuário $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 "Registro adicionado com sucesso."; } echo "Erro: Não é possível executar $sql." . mysqli_error($link); } //关闭连接 mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //Verificar a conexão if($mysqli === false) { die("Erro: Não foi possível conectar. " . $mysqli->connect_error); } //Para segurança, escapar a entrada do usuário $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 "Erro: Não é possível executar $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 清理和验证用户输入的更多信息。