2016-06-16 4 views
0

Ich bin neu in SQL, ich würde gerne wissen, wie ich diesen Code arbeiten kann. Weil es nicht versteht, dass $lala und $lolo Variable sind.Variable in SQL INSERT

$lolo = "ahha"; 
$lala = "2"; 
$sql = "INSERT INTO organisation (id_orga, nom) VALUES "; 
$sqll = '($lala, $lolo)'; 

$resultat = $conn->query($sql.$sqll); 

so habe ich versucht:

$lolo = "ahha"; 
$lala = "2"; 
$sql = "INSERT INTO organisation (id_orga, nom) VALUES "; 
$sqll = '('.$lala.','. $lolo.')'; 

$resultat = $conn->query($sql.$sqll); 

Aber beiden Codes nicht INSERT in meinem BDD und auch keinen Fehler geben.

+3

auch zu Beginn eine bessere Alternative ist, immer vorbereitete Anweisungen verwenden: http://php.net/manual/de/mysqli.quickstart. prepared-statements.php –

+0

Auch welche DBMS benutzen Sie? Und welche Programmiersprache ist das? –

Antwort

1

In PHP werden die Zugriffe auf Variablen wie so erklärt:

$lala = "ahah"; 

Wenn Sie Echo müssen oder ausdrucken Sie die String-Verkettung wie echo 'this is my' . $lala; tun oder echo "this is my $lala";

Das passiert, weil die doppelten Anführungszeichen Ihnen erlauben, die Variable ohne Verkettung einzufügen. in Ihrem Fall also:

$sqll = '('.$lala.','. $lolo.')'; 

ist richtig und ist die gleiche wie:

$sqll = "($lala, $lolo)"; 

Mit den einfachen Anführungszeichen $sqll = '($lala, $lolo)'; würde, wie es würde nicht funktionieren Ausgabe ($lala, $lolo) und nicht (2, ahaha)


Hinweis: einen Blick auf pdo nehmen, die zu mysql Sicherheit weise

+0

Vielen Dank für Ihre tolle Antwort, aber ich finde es heraus hier ist der Arbeitscode: '$ lolo = "ahha"; $ lala = "2"; $ sql = "In Organisation einfügen (id_orga, nom) VALUES"; $ sqll = "('". $ Lala. "', '". $ Lolo. "')"; $ resultat = $ conn-> Abfrage ($ sql. $ Sqll); echo $ sql. $ Sqll; ' – moskitos

+0

Ja, Sie brauchen auch die einfachen Anführungszeichen zum Einfügen von Strings in db und schreiben sie in Ihre insert Anweisung – Apostolos

+0

Bitte wählen Sie auch eine Antwort und upvote diejenigen, die Ihnen geholfen haben. thnx – Apostolos

1

Versuch mit doppelten Anführungszeichen

$sqll = "($lala, $lolo)"; 
+1

siehe auch http://stackoverflow.com/questions/5605965/php-concatenate-or-directly-insert-variables-in-string – Apostolos