2015-02-05 3 views
-2

Я пытаюсь создать очень простую форму php, которая вставляет значения в базу данных. Сначала я создал форму:Как вставить значения из формы 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> 

Затем я создал второй файл PHP с подключением Mysqli базы данных и SQL запроса для вставки значений в базе данных:

<?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 будет ресурс, нуль данный в C: \ WAMP \ WWW \ Информ \ insertion2.php на линии 20 Примечание: Не определено переменная: база в C: \ wamp \ www \ Inform \ insertion2.php в строке 20

и я не знаю, что делать. Вы можете мне помочь?

+7

Определите '$ base'! Изменить: не смешивать mysql_ * и mysqli_ *. Предпочитаете mysqli_ *. – Debflav

+0

Должен ли я заменить все mysql на mysqli? .. – Maxime

+0

Да. Одна из причин: «Mysql устарел от PHP 5.5.0 и будет удален в будущем». – Debflav

ответ

2

Вы смешиваете его с mysql. Попробуйте с -

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

Вместо -

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

Спасибо, что это работает! – Maxime

+0

Рад помочь вам .. Пожалуйста, поддержите/примите ответ, если он будет полезен. –

0

Как уже упоминалось в комментариях, вам нужно определить свой $ базовую переменную. Вы также вызываете обе функции mysqli и mysql.

Поскольку вы пишете базу данных Mysqli, вы должны постоянно использовать функции mysqli в своем коде.

Но вы также должны дезинфицировать свои параметры. Этот код очень открыт для SQL Injections

Вы хотите посмотреть в mysqli-> Подготовьте и выполните с параметризованными запросами.

Смежные вопросы