如何在MySQL插入中包含PHP变量

如何在MySQL插入中包含PHP变量,php,Php,我正在尝试在目录中插入值。如果我的值中没有PHP变量,它就可以正常工作。当我将变量$address放入值中时,这就不起作用了 $lat=$\u GET['lat']//纬度 $lng=$_获得['lng']//经度 $address=$_GET['nom'];//这是一个例子 //$address=getAddress($lat,$lng);真正的问题是如何在值中调用$address $bdd->exec('INSERT INTO user(nom,prenom,Gsm,Email,Sexe,

我正在尝试在目录中插入值。如果我的值中没有PHP变量,它就可以正常工作。当我将变量$address放入值中时,这就不起作用了

$lat=$\u GET['lat']//纬度
$lng=$_获得['lng']//经度
$address=$_GET['nom'];//这是一个例子
//$address=getAddress($lat,$lng);真正的问题是如何在值中调用$address
$bdd->exec('INSERT INTO user(nom,prenom,Gsm,Email,Sexe,address)值(\'.$获取['nom'.'.\',\'.$获取['prenom'.].'''.''.$获取['Nemail'.'.'.$获取['Sexe'.'.'.'.''.''.''.'''.''.''.$您更喜欢更安全、更清洁的环境

 <?php
    $stmt = $dbh->prepare("INSERT INTO user(nom, prenom, Gsm, Email, Sexe, address) VALUES(:nom, :prenom, :mobile, :Nemail, :sexe, :address)");
    $stmt->bindParam(':nom', $_GET['nom'];
    $stmt->bindParam(':prenom', $_GET['prenom'];
    $stmt->bindParam(':mobile', $_GET['mobile'];
    $stmt->bindParam(':Nemail', $_GET['Nemail'];
    $stmt->bindParam(':sexe', $_GET['sexe'];
    $stmt->bindParam(':address', $_GET['address'];
    $stmt->execute();
    ?>

此方法非常简单,容易出现语法错误,并且非常容易受到SQL注入攻击。您应该使用参数化查询和准备好的语句来帮助防止攻击者使用恶意输入值破坏您的数据库。给出了风险的解释,以及如何使用PHP和流行的DB库安全地编写查询的一些示例。切勿将未初始化的数据直接插入SQL。请提供您得到的错误(!)解析错误:语法错误,C:\wamp\www\amine\api.php第40行
中意外的“$address”(T_变量)。“$address.”
将解决此问题。你忘了用圆点做弦缩合。但是,如果人们在输入中使用诸如引号之类的疯狂的东西,那么它仍然会使您的代码容易被黑客攻击,并且还容易出现SQL语法错误。提供的答案肯定是正确的。我可以这样做$stmt->bindParam(':address',$address);是的,你绝对可以