Bene, sto creando un semplice installer per una mia applicazione su una intranet locale e ovviamente mi si presentano vari problemi.
Uno fra tanti ma sicuramente per ora il più rognoso è la selezione dell'utente per la verifica dei privilegi e l'assunzione del nome di database.
Questa mattina dopo aver scritto la semplice query : "CREATE DATABASE IF NOT EXISTS sm" non solo non me l'ha creato, ma il server mi ha risposto che non potevo connettermi al database! Errore 2002 riportato dal PDO.
Fatta una ricerchina in rete non sono approdato a nulla quindi prove che ti riprova per caso ho scoperto che il mio account non mi permetteva la creazione e ne la cancellazione dei database. (nel frattempo mi connettevo tranquillamente tramite phpMyAdmin con lo stesso nome utente). Quindi il server c'era eccome, l'errore al solito criptico del MySQL non mi diceva la verità sul problema.
Alla fine della fiera mi è venuto il seguente dubbio: come faccio aprioristicamente a creare un database in fase di installazione della mia applicazione da parte di un utente (che abbia ovvio i privilegi almeno di creare il dB) ma conoscendo comunque le impostazioni del server MySQL?
Spesso ci si trova di fronte a installazioni che prevedono davanti al nome del database il nome dell'utente, separato da un underscore per esempio Marcolino_database è un caso classico e tra l'altro quello del server dove deve girare la mia applicazione.
Come faccio a scoprire il nome utente da associare al database? Ad esempio "SELECT USER( )" mi fa vedere Marcolino@localhost e mi sta già bene, ma non so se a questo utente è associato un nome da inserire prima del nome di database, come faccio a scoprirlo?