[MySQL] Connessione DB e query da file batch

Giulo77

Nuovo Utente
15 Mar 2018
22
0
1
42
Ciao a tutti,
ho uno script .bat dove ottengo delle variabili che vorrei andare ad inserire direttamente in un record nel mio database.
Esempio:
Codice:
@echo off

set MYSQL_HOST=192.0.200.5
set MYSQL_ID=root
set MYSQL_PASS=
set MYSQL_DB=dbprova
set MYSQL_TB=eventi
set CAMPO1=1
set CAMPO2=ciao
Il db risiede su un'altra macchina da cui ovviamente accedo tranquillamente. Una delle particolarità è che non è protetto da password e non ho intenzione di metterla quindi già non saprei come trattare il parametro -p
Comunque il percorso dove riesco a far partire da cmd il mysql è "C:\Program Files (x86)\EasyPHP-Devserver-17\eds-binaries\dbserver\mysql5724x64x190129155938\bin\mysql.exe" e per la lunghezza delle directory direi che sono essenziali i doppi apici.

Quello che vorrei ottenere è implementare il comando per connettermi al database e per inserire nella tabella eventi (campo1,campo2) values (%CAMPO1%, %CAMPO2%)

Ho provato con:
Codice:
"C:\Program Files (x86)\EasyPHP-Devserver-17\eds-binaries\dbserver\mysql5724x64x190129155938\bin\mysql.exe" -h %MYSQL_HOST% -u%MYSQL_ID% -p%MYSQL_PASS% -e "use %MYSQL_DB%; INSERT INTO %MYSQL_TB% (campo1,campo2) VALUES (%CAMPO1%, %CAMPO2%);"
Ho provato anche ad omettere il parametro -p ma nulla.

Riuscite ad aiutarmi?
 

marino51

Utente Attivo
28 Feb 2013
2.599
132
63
Lombardia
non conosco mySQL, quindi una risposta indiretta
con SQL Server di Microsoft utilizzo sqlcmd(.exe) con una riga di comando molto semplice,
Codice:
sqlcmd %Opt_svrname% -i "%Opt_CmdFile%" -o "%Opt_LogFile%"
la chiamata ell'eseguibile può avvenire da qualunque posizione, senza percorsi chilometrici
Opt_svrname contiene i parametri di connessione
Opt_CmdFile specifica il file con tutti i comandi sql
Opt_LogFile é il file che conterrà il log con il risultato di ciascun comando presente

ti consiglio di leggere il manuale perchè potrebbe esistere un metodo semplice like sqlcmd ….

e per la lunghezza delle directory direi che sono essenziali i doppi apici.
in realtà e per conoscenza, gli apici sono necessari perchè tra Program e Files (ma non solo) c'è uno spazio che interromperebbe l'interpretazione del comando