English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial imparerai come usare PHP per inserire record nella tabella MySQL.
Ora che hai capito come creare database e tabelle in MySQL, in questo tutorial imparerai come eseguire query SQL per inserire record nella tabella.
INSERT INTOLa statement è usata per inserire una nuova riga nella tabella del database.
Usiamo una query INSERT INTO con valori appropriati per eseguire una query SQL, poi eseguiremo la query INSERT passando la funzione mysqli_query() di PHP per eseguire la query INSERT, in modo da inserire dati nella tabella. Ecco un esempio, che specificafirst_name,last_nameeemailI valori del campo vannopersonsAggiungi una nuova riga alla tabella.
<?php $link = mysqli_connect("localhost", "root", "", "demo"); // Controlla la connessione if ($link === false) { die("Errore: Impossibile connettersi. " . mysqli_connect_error()); } //尝试执行插入查询 $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Peter', 'Parker', '[email protected]')"; if (mysqli_query($link, $sql)) { echo "记录插入成功。"; } else { echo "Errore: Impossibile eseguire $sql. " . mysqli_error($link); } //Chiusura della connessione mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //Verifica la connessione 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 "记录插入成功。"; } else { echo "Errore: Impossibile eseguire $sql. " . $mysqli->error; } //Chiusura della connessione $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()); } //Chiusura della connessione unset($pdo); ?>
Se ti ricordiIl contenuto del capitolo precedentequindiidIl campo è marcato con il segno AUTO_INCREMENT. Questo modificadori dice a MySQL che se non viene specificato il valore, viene assegnato automaticamente un valore al campo aumentando di 1 il valore precedente.
Puoi anche inserire più righe in una volta tramite una singola query di inserimento. Per fare questo, includi più liste di valori di colonne nell'istruzione INSERT INTO, ognuna delle quali deve essere racchiusa tra parentesi e separata da virgole.
Facciamo un inserimentopersonsAggiungi alcune righe alla tabella, come segue:
<?php $link = mysqli_connect("localhost", "root", "", "demo"); //Verifica la connessione if ($link === false) { die("Errore: Impossibile connettersi. " . 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 "Record aggiunto con successo."; } else { echo "Errore: Impossibile eseguire $sql. " . mysqli_error($link); } //Chiusura della connessione mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //Verifica la connessione 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 "记录插入成功。"; } else { echo "Errore: Impossibile eseguire $sql. " . $mysqli->error; } //Chiusura della connessione $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("Errore: Impossibile connettersi. " . $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()); } //Chiusura della connessione unset($pdo); ?>
Ora, vai su phpMyAdmin (http://localhost/phpmyadmin/) e verificadimostrazionenel databasepersonaleTabella dei dati. TroveraiIDil valore della colonna è calcolato aggiungendo 1 all'ultimoIDdel valore dell'ultima riga della colonna
注意: Le istruzioni SQL possono contenere un numero qualsiasi di interruzioni di riga, ma a condizione che nessuna interruzione di riga rompa parole chiave, valori, espressioni, ecc.
Nella sezione precedente, abbiamo imparato come inserire dati nel database da uno script PHP. Ora, vedremo come inserire dati nel database provenienti da un modulo HTML. Creiamo un modulo HTML che può essere utilizzato per inserire nuovi recordpersonaletabella.
Questo è un semplice modulo HTML che contiene tre campi di testo<input>un campo e un pulsante di invio.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Modulo di Aggiunta Record</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">Cognome:</label> <input type="text" name="last_name" id="lastName"> </p> <p> <label for="emailAddress">Indirizzo Email:</label> <input type="text" name="email" id="emailAddress"> </p> <input type="submit" value="Submit"> </form> </html>Testa e vedi‹/›
Nell'esempio sopra, quando l'utente fa clic sul pulsante di invio del modulo HTML per aggiungere un record, i dati del modulo vengono inviati al file "insert.php". Il file "insert.php" si connette al server del database MySQL, utilizza le variabili $_REQUEST di PHP per recuperare i campi del modulo e infine esegue una query di inserimento per aggiungere il record. Ecco il codice completo del nostro file "insert.php":
<?php $link = mysqli_connect("localhost", "root", "", "demo"); //Verifica la connessione if ($link === false) { die("ERROR: Could not connect. " . mysqli_connect_error()); } //Per sicurezza, escape l'input dell'utente $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 aggiunto con successo."; } else { echo "Errore: Impossibile eseguire $sql. " . mysqli_error($link); } //Chiusura della connessione mysqli_close($link); ?>
<?php $mysqli = new mysqli("localhost", "root", "", "demo"); //Verifica la connessione if ($mysqli === false) { die("Errore: Impossibile connettersi. " . $mysqli->connect_error); } //Per la sicurezza, escape l'input dell'utente $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 "记录插入成功。"; } else { echo "Errore: Impossibile eseguire $sql. " . $mysqli->error; } //Chiusura della connessione $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 清理和验证用户输入的更多信息。