2017-09-21 5 views
1

Ich versuche, Werte in die Inhaltstabelle einzufügen. Es funktioniert gut, wenn ich keine PHP-Variable in VALUES habe. Wenn ich in VALUES die Variable $ Adresse setzen dann funktionierts nichtWie man eine PHP-Variable in eine MySQL-Einfügung einfügt

$lat= $_GET['lat']; //latitude 
 
$lng= $_GET['lng']; //longitude 
 
$address= $_GET['nom']; // this is an exmple 
 
    // $address= getAddress($lat,$lng); real fonction my probleme is how to call $address in values 
 
    
 
    $bdd->exec('INSERT INTO user(nom, prenom, Gsm, Email, Sexe, address) VALUES(\''.$_GET['nom'].'\' , \''.$_GET['prenom'].'\' , \''.$_GET['mobile'].'\' , \''.$_GET['Nemail'].'\' , \''.$_GET['sexe'].'\', '$address' )');

+2

Diese Methode ist naiv, anfällig für Syntaxfehler und ist auch sehr anfällig für SQL-Injection-Angriffe. Sie sollten parametrisierte Abfragen und vorbereitete Anweisungen verwenden, um Angreifern zu helfen, Ihre Datenbank durch die Verwendung schädlicher Eingabewerte zu kompromittieren. http://bobby-tables.com gibt eine Erklärung der Risiken, sowie einige Beispiele, wie Sie Ihre Abfragen sicher mit PHP und beliebten DB-Bibliotheken schreiben können. Legen Sie niemals unsanitierte Daten direkt in Ihre SQL ein. – ADyson

+0

Bitte geben Sie den Fehler an, den Sie erhalten – gogaz

+0

(!) Parse-Fehler: Syntaxfehler, unerwartete '$ -Adresse' (T_VARIABLE) in C: \ wamp \ www \ Amin \ api.php in Zeile 40 –

Antwort

3

würden Sie prepared statement bevorzugen, sicherer und sauberer.

<?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(); 
    ?> 
+0

kann ich das tun $ stmt-> bindParam (': Adresse', $ Adresse); –

+0

Ja können Sie definitiv – Will

+0

thnks es funktioniert –

Verwandte Themen