如何将 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。