2015-02-12 3 views
1

У меня проблема с синтаксической ошибкой, даже когда я пытаюсь ее разрешить. Вот сообщение об ошибке:INSERT INTO проблема синтаксиса

«У Вас есть ошибка в вашем синтаксисе SQL, проверьте руководство, которое соответствует Вашей версии сервера MySQL для правильного синтаксиса использовать вблизи«Рю де Vergennes, 06xxxxxxxx, почта @ почту. ком)»в строке 2"

Вот мой код:

1.html

<form method="post" action="2.php"> 
     <p> 
      <label>Nom</label> : <input type="text" name="nom"><br> 
      <label>Prénom</label> : <input type="text" name="prenom"><br> 
      <label>Adresse</label> : <input type="text" name="adresse"><br> 
      <label>Numéro de téléphone</label> : <input type="tel" name="tel" pattern="^((\+\d{1,3}(-|)?\(?\d\)?(-|)?\d{1,5})|(\(?\d{2,6}\)?))(-|)?(\d{3,4})(-|)?(\d{4})((x| ext)\d{1,5}){0,1}$"><br> 
      <label>Adresse e-mail</label> : <input type="email" name="mail"><br> 
      <input type="submit" name="submit" value="Poursuivre"> 
     </p> 
    </form> 

2.php

<?php 
    $servername = "localhost"; 
    $username = "root"; 
    $password = "root"; 
    $dbname = "kitcasino"; 

$nom = $_POST['nom']; 
$prenom = $_POST['prenom']; 
$adresse = $_POST['adresse']; 
$tel = $_POST['tel']; 
$mail = $_POST['mail']; 

    $conn = mysqli_connect($servername, $username, $password, $dbname); 
    if (!$conn) { 
     die("Connection failed: " . mysqli_connect_error()); 
    } 

    $sql = "INSERT INTO donnees (nom, prenom, adresse, tel, email) 
    VALUES ($nom, $prenom, $adresse, $tel, $mail)"; 

    if (mysqli_query($conn, $sql)) { 
     echo "Done!"; 
    } else { 
     echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
    } 

    mysqli_close($conn); 
    ?> 

ответ

2

вы должны поместить переменную между цитатой, как

$sql = "INSERT INTO donnees (nom, prenom, adresse, tel, email) 
    VALUES ($nom, '$prenom', '$adresse', $tel, '$mail')"; 
+0

Спасибо, это работает. – cheezburger

+0

приветствуется. пожалуйста, отметьте ответ как принято –

+1

Тогда вам нужно надеяться, что ни одно из значений поля не содержит закрывающей цитаты в любом месте! К счастью, это поддерживается в mysqli_real_escape_string, который будет правильно удалять вход и безопасно вставлять его. – langton

1

Вы должны сделать так:

$sql = "INSERT INTO donnees (nom, prenom, adresse, tel, email) 
    VALUES ('".$nom."', '".$prenom."', '".$adresse."', '".$tel."', '".$mail."')"; 

Bonjour-де-ла-Франция, puisque Je vois un francophone :)

0

попробуйте ввести ниже код

 $servername = "localhost"; 
     $username = "root"; 
     $password = "root"; 
     $dbname = "kitcasino"; 

    $con = mysqli_connect($servername, $username, $password, $dbname); 
$nom = mysqli_real_escape_string($con, $_POST['nom']); 
$prenom = mysqli_real_escape_string($con, $_POST['prenom']); 
$adresse = mysqli_real_escape_string($con, $_POST['adresse']); 
$tel = $_POST['tel']; 
$mail = $_POST['mail']; 
    if (!$conn) { 
      die("Connection failed: " . mysqli_connect_error()); 
     } 

     $sql = "INSERT INTO donnees (nom, prenom, adresse, tel, email) 
     VALUES ('".$nom."', '".$prenom."', '".$adresse."', '".$tel."', '".$mail."')"; 

     if (mysqli_query($conn, $sql)) { 
      echo "Done!"; 
     } else { 
      echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
     } 

     mysqli_close($con); 
0

Используйте подготовленные заявления mysqli, это безопаснее и быстрее для вашего приложения.

$servername = "localhost"; 
$username = "root"; 
$password = "root"; 
$dbname = "kitcasino"; 
$nom = $_POST['nom']; 
$prenom = $_POST['prenom']; 
$adresse = $_POST['adresse']; 
$tel = $_POST['tel']; 
$mail = $_POST['mail']; 
$mysqli = new mysqli($servername, $username, $password, $dbname); 
if ($mysqli->connect_errno) { 
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error; 
} 
$stmt = $mysqli->prepare("INSERT INTO donnees (`nom`, `prenom`, `adresse`, `tel`, `email`) VALUES (?,?,?,?,?)"); 
$stmt->bind_param("sssss", $nom, $prenom, $adresse, $tel, $mail); 
if (!$stmt->execute()) { 
trigger_error('Error executing MySQL query: ' . $stmt->error); 
} else { 
echo "Done!"; 
} 
$stmt->close(); 
$mysqli->close(); 
Смежные вопросы