如何将 php 表单中的值插入数据库?
How to insert values from a php form to a database?
我正在尝试制作一个非常简单的 php 表单,用于在数据库中插入值。
首先我创建了一个表单:
<html>
<head>
<title>insertion de données en PHP :: partie 1</title>
</head>
<body>
<form name="insertion" action="insertion2.php" method="POST">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>nom</td>
<td><input type="text" name="nom"></td>
</tr>
<tr align="center">
<td>prenom</td>
<td><input type="text" name="prenom"></td>
</tr>
<tr align="center">
<td>adresse</td>
<td><input type="text" name="adresse"></td>
</tr>
<tr align="center">
<td>code postal</td>
<td><input type="text" name="codePostal"></td>
</tr>
<tr align="center">
<td>numéro de téléphone</td>
<td><input type="text" name="telephone"></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="insérer"></td>
</tr>
</table>
</form>
</body>
</html>
然后我使用 mysqli 数据库连接和 SQL 查询创建了第二个 php 文件以将值插入数据库:
<?php
$mysqli = new mysqli("localhost", "root", "", "info");
if ($mysqli->connect_errno) {
echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$nom = $_POST["nom"] ;
$prenom = $_POST["prenom"] ;
$adresse = $_POST["adresse"] ;
$cp = $_POST["codePostal"] ;
$tel = $_POST["telephone"] ;
$sql = "INSERT INTO personnes (nom, prenom, adresse, cp, telephone)
VALUES ( '$nom', '$prenom', '$adresse', '$cp', '$tel') " ;
$requete = mysql_query($sql, $base) or die( mysql_error() ) ;
if($requete)
{
echo("L'insertion a été correctement effectuée") ;
}
else
{
echo("L'insertion à échouée") ;
}
?>
但现在我有错误:
Warning: mysql_query() expects parameter 2 to be resource, null given
in C:\wamp\www\Inform\insertion2.php on line 20 Notice: Undefined
variable: base in C:\wamp\www\Inform\insertion2.php on line 20
而且我不知道该怎么办。你能帮帮我吗?
您将其与 mysql
混淆了。试试 -
$requete = mysqli_query($mysqli, $sql) or die( mysqli_error());
而不是 -
$requete = mysql_query($sql, $base) or die( mysql_error() ) ;
如评论中所述,您需要定义 $base 变量。
您还可以同时调用 mysqli 和 mysql 函数。
由于您编写的是 Mysqli 数据库,因此您应该在代码中始终使用 mysqli 函数。
但您确实也应该清理您的参数。此代码对 SQL Injections
非常开放
您可能想研究使用 mysqli->Prepare and execute with parameterized queries。
我正在尝试制作一个非常简单的 php 表单,用于在数据库中插入值。 首先我创建了一个表单:
<html>
<head>
<title>insertion de données en PHP :: partie 1</title>
</head>
<body>
<form name="insertion" action="insertion2.php" method="POST">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>nom</td>
<td><input type="text" name="nom"></td>
</tr>
<tr align="center">
<td>prenom</td>
<td><input type="text" name="prenom"></td>
</tr>
<tr align="center">
<td>adresse</td>
<td><input type="text" name="adresse"></td>
</tr>
<tr align="center">
<td>code postal</td>
<td><input type="text" name="codePostal"></td>
</tr>
<tr align="center">
<td>numéro de téléphone</td>
<td><input type="text" name="telephone"></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="insérer"></td>
</tr>
</table>
</form>
</body>
</html>
然后我使用 mysqli 数据库连接和 SQL 查询创建了第二个 php 文件以将值插入数据库:
<?php
$mysqli = new mysqli("localhost", "root", "", "info");
if ($mysqli->connect_errno) {
echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$nom = $_POST["nom"] ;
$prenom = $_POST["prenom"] ;
$adresse = $_POST["adresse"] ;
$cp = $_POST["codePostal"] ;
$tel = $_POST["telephone"] ;
$sql = "INSERT INTO personnes (nom, prenom, adresse, cp, telephone)
VALUES ( '$nom', '$prenom', '$adresse', '$cp', '$tel') " ;
$requete = mysql_query($sql, $base) or die( mysql_error() ) ;
if($requete)
{
echo("L'insertion a été correctement effectuée") ;
}
else
{
echo("L'insertion à échouée") ;
}
?>
但现在我有错误:
Warning: mysql_query() expects parameter 2 to be resource, null given in C:\wamp\www\Inform\insertion2.php on line 20 Notice: Undefined variable: base in C:\wamp\www\Inform\insertion2.php on line 20
而且我不知道该怎么办。你能帮帮我吗?
您将其与 mysql
混淆了。试试 -
$requete = mysqli_query($mysqli, $sql) or die( mysqli_error());
而不是 -
$requete = mysql_query($sql, $base) or die( mysql_error() ) ;
如评论中所述,您需要定义 $base 变量。 您还可以同时调用 mysqli 和 mysql 函数。
由于您编写的是 Mysqli 数据库,因此您应该在代码中始终使用 mysqli 函数。
但您确实也应该清理您的参数。此代码对 SQL Injections
非常开放您可能想研究使用 mysqli->Prepare and execute with parameterized queries。