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