【问题标题】:Insert in Database with PHP variable [closed]使用 PHP 变量插入数据库 [关闭]
【发布时间】:2014-01-01 14:20:38
【问题描述】:

我的代码有问题。 我想在我的数据库中插入 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 有什么问题?

【问题讨论】:

  • 字符串值需要被引用....但是你正在使用 MySQLi 那么为什么不进入 21 世纪并开始使用准备好的语句/绑定变量
  • @MarkBaker Thx Mark :) 好的,所以我必须这样做: $sql = "INSERT INTO info(nom, prenom, entreprise, email, objet, message) VALUES('$nom' ,'$prenom','$entreprise','$email','$objet','$message')";
  • 如果您使用绑定变量,则无需记住引用字符串或转义插入的变量
  • 怎么做?它比我的解决方案更好?

标签: php variables insert mysqli


【解决方案1】:
$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();

bindParam 来自 php 手册。

【讨论】:

  • 我对撇号变量有疑问...如何逃避这个?
  • 你能把这个问题写在另一个问题中吗?
  • 另外准备好的语句会处理引号。 php.net/manual/en/pdo.prepare.php
  • +1 用于绑定参数示例
  • 我明白,但它是相同的代码...我尝试使用 mysqli_real_escape_string(),但这不起作用..
【解决方案2】:

试试这个代码

<?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'));
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 2018-05-03
    相关资源
    最近更新 更多