0

sqlwriterow 関数はクエリを送信し、探している特定の行からデータを取得します。PowerShell 変数を含むクエリを送信すると問題が発生します。ここで、26 (または探している ID) を入力すると「$id」を書き込む代わりに、期待されるデータが返されます。しかし、変数を入れると、データが返されません。そして、私が得る引用符を取り出すなど、フォーマットをいじります

SQL 構文にエラーがあります。1行目のnear ''を使用する正しい構文については、MariaDBサーバーのバージョンに対応するマニュアルを確認してください

私はそれをフォーマットするためにあらゆる種類の方法を試しました。

$sqlcmd4appcheck = "use spree; select * from tasks_profiles where id = '$id'"
$sqlcmd4appcheck = "use spree; select * from tasks_profiles where id = ``$id``"
$sqlcmd4appcheck = "use spree; select * from tasks_profiles where id = ''$id''"
$sqlcmd4appcheck = "use spree; select * from tasks_profiles where id = "$id""

コード:

function sqlwriterow($args1, $args2) {
    [void][system.reflection.Assembly]::LoadFrom(“C:\Program Files (x86)\MySQL\MySQL Connector Net 5.0.9\Binaries\.NET 2.0\MySQL.Data.dll”)
    $dbconnect = New-Object MySql.Data.MySqlClient.MySqlconnection
    $dbconnect.connectionString = "server=207.52.55.122;user id=spree;pwd=spr33Adm1n;database=spree"
    if (-not ($dbconnect.State -like "Open")) { $dbconnect.Open() }
    $sql = New-Object MySql.Data.MySqlclient.MySqlcommand
    $sql.Connection = $dbconnect
    $sql.Commandtext = $args1
    $dataset=New-Object system.Data.Dataset
    $dataAdaptor=New-Object MySql.Data.MySqlClient.MySqlDataAdapter($sql)
    $dataAdaptor.fill($dataset)
    $script:row = $dataset.tables[0].Rows[0].$args2
    $dbconnect.Close()

}


$id = 26
$sqlcmd4appcheck = "use spree; select * from tasks_profiles where id = '$id'"

sqlwriterow -args1 $sqlcmd4appcheck -args2 "app"; $app = $row
4

0 に答える 0