如何将PHP表单中的值插入数据库?

时间:2015-02-05 11:40:56

标签: php mysql sql mysqli

我试图制作一个非常简单的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") ;
    }
?>

但现在我有错误:

  

警告:mysql_query()期望参数2为resource,给定null   在第20行的C:\ wamp \ www \ Inform \ insertion2.php中注意:未定义   变量:基础在第20行的C:\ wamp \ www \ Inform \ insertion2.php

我不知道该怎么做。你能救我吗?

2 个答案:

答案 0 :(得分:2)

您正在将其与mysql混合。试试 -

$requete = mysqli_query($mysqli, $sql) or die( mysqli_error());

而不是 -

$requete = mysql_query($sql, $base) or die( mysql_error() ) ;

答案 1 :(得分:0)

如评论中所述,您需要定义$ base变量。 你也可以调用mysqli和mysql函数。

由于您编写的是Mysqli数据库,因此您应该始终在代码中使用mysqli函数。

但你真的应该清理你的参数。此代码非常适合SQL Injections

您想要查看使用mysqli-&gt;准备并执行参数化查询。