使用PHP变量插入数据库

时间:2014-01-01 14:20:38

标签: php variables insert mysqli

我的代码存在问题。 我想在我的数据库中插入PHP变量($ variable)。

但我有这个错误:

 Erreur SQL !
INSERT INTO info(nom, prenom, entreprise, email, objet, message) VALUES(test,toto,overflow,toto@hotmail.fr,Autre,TEST)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@hotmail.fr,Autre,TEST)' at line 1

我的代码:

<?php 
// Connection to MySQL 
$db = mysqli_connect('****', '***', '','****') or die("Erreur de connexion au serveur !!!"); 

// Create request
$sql = "INSERT INTO info(nom, prenom, entreprise, email, objet, message) VALUES($nom,$prenom,$entreprise,$email,$objet,$message)";

// Send request to DB
$req = mysqli_query($db,$sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error($db));  

// Close connection
$deconnexion = mysqli_close(mysqli_connect('localhost', 'root', '','contact'));
?>

我想使用mysqli来执行此插入。

我的INSERT INTO有什么问题?

2 个答案:

答案 0 :(得分:2)

$sql = "INSERT INTO info (nom, prenom, entreprise, email, objet, message) VALUES ('$nom','$prenom','$entreprise','$email','$objet','$message')";

需要引用字符串值。

以下更好的替代方法。

$sql = "INSERT INTO info (nom, prenom, entreprise, email, objet, message) VALUES (?, ?, ?, ?, ?, ?)";
$sql->bindParam('ssssss', $nom, $prenom, $entreprise, $email, $objet, $message);
$sql->execute();
来自php手册的

bindParam

答案 1 :(得分:0)

试试此代码

<?php 
// Connection to MySQL 
$db = mysqli_connect('****', '***', '','****') or die("Erreur de connexion au serveur !!!"); 

// Create request
$sql = "INSERT INTO info(nom, prenom, entreprise, email, objet, message) VALUES('$nom','$prenom','$entreprise','$email','$objet','$message')";

// Send request to DB
$req = mysqli_query($db,$sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error($db));  

// Close connection
$deconnexion = mysqli_close(mysqli_connect('localhost', 'root', '','contact'));
?>