2010-12-28 9 views
1

Ich möchte Daten in meine MySQL-Datenbank mit PowerShell einfügen.PowerShell MySQL-Abfragesyntax

Mein Code funktioniert, aber ich habe ein kleines Problem mit den Variablen in der Einfügezeichenfolge.

Wie kann ich eine Variable in der Einfügezeichenfolge verwenden?

[system.reflection.assembly]::LoadWithPartialName("MySql.Data") 
$cn = New-Object -TypeName MySql.Data.MySqlClient.MySqlConnection 
$cn.ConnectionString = "SERVER=localhost;DATABASE=test;UID=root;PWD=pwd" 
$cn.Open() 
$cm = New-Object -TypeName MySql.Data.MySqlClient.MySqlCommand 


#The problem, not working 
$n = 7 
$sql = 'INSERT INTO db1ea4test1.besitzer (besID, Vorname, Name) VALUES ('$n' , "Testvor" + '$n' , "Testnach" + '$n')' 

# Working 
#$sql = 'INSERT INTO db1ea4test1.besitzer (besID, Vorname, Name) VALUES ("6", "Testvor", "Testnach")' 


$cm.Connection = $cn 
$cm.CommandText = $sql 
$dr = $cm.ExecuteNonQuery() 

Antwort

3

Versuchen Sie es mit doppelten Anführungszeichen für SQL-Zeichenfolge, einfache Anführungszeichen um einzelne Variablen und sicherstellen, dass Ihre verketteten Variablen angegeben sind:

$sql = "INSERT INTO db1ea4test1.besitzer (besID, Vorname, Name) VALUES ('$n' , 'Testvor$($n)' , 'Testnach$($n)')" 
+0

Great! Es funktioniert! Vielen Dank! – LaPhi