Joomla.it Forum

Joomla! 3 => Joomla! 3 => : lettore 23 Jun 2015, 13:03:08

: JDatabase Insert
: lettore 23 Jun 2015, 13:03:08
Salve a tutti,
ho la necessità di creare una pagina in Joomla che esegua una INSERT sul database MySql, leggevo la documentazione e le funzioni di  JDatabase ma non riesco a capire come adattare gli esempi alle mie necessità, visto che la insert che devo lanciare fa prima una select:


$sql = "INSERT INTO TABELLA_B (id, context) SELECT id, context FROM TABELLA_A;";



L'esempio che ho trovato nella documentazione JDatabase, ma che non sono riuscito ad adattare allo scopo è questo:

// Get a db connection.
$db = JFactory::getDbo();
 
// Create a new query object.
$query = $db->getQuery(true);
 
// Insert columns.
$columns = array('user_id', 'profile_key', 'profile_value', 'ordering');
 
// Insert values.
$values = array(1001, $db->quote('custom.message'), $db->quote('Inserting a record using insert()'), 1);
 
// Prepare the insert query.
$query
    ->insert($db->quoteName('#__user_profiles'))
    ->columns($db->quoteName($columns))
    ->values(implode(',', $values));
 
// Set the query using our newly populated query object and execute it.
$db->setQuery($query);
$db->execute();



Qualcuno può darmi una mano?

Grazie
: Re:JDatabase Insert
: steganoga 23 Jun 2015, 13:34:56
per usare una classe del framework devi necessariamente scrivere un estensione. In base a ciò che ti serve sceglierai se ti serve un componente un modulo oppure un plugin

per come è fatto Joomla, questo significa nulla:
"creare una pagina in Joomla che esegua una INSERT sul database MySql"


: Re:JDatabase Insert
: lettore 23 Jun 2015, 14:55:33
Grazie della risposta.

Non credo di avere al momento le capacità richieste per poter scrivere un'estensione  :o

Poteri scrivere l'istruzione php senza utilizzare il framework di Joomla, ma visto il database sul quale devo eseguire l'INSERT è lo stesso che ospita Joomla e le credenziali di accesso sono le stesse (e non ho la possibilità di crearne una dedicata, per limitazioni imposte dall'hoster), non vorrei creare un buco di sicurezza scrivendo a mano il codice di connessione al database, senza utilizzare lo "standard" di Joomla.

Ho alternative?

Grazie
: Re:JDatabase Insert
: steganoga 23 Jun 2015, 16:07:41
cosa devi fare?
: Re:JDatabase Insert
: lettore 23 Jun 2015, 16:32:32
Devo pubblicare una pagina php che contiene un'istruzione sql, che va in insert sul database... tutto questo per schedulare giornalmente l'esecuzione di quell'istruzione.

Perchè mi sono imposti questi limiti dall'hoster:
1) non posso creare degli EVENT sul database MySQL (per schedulare li dentro le istruzioni SQL)
2) non posso creare nuovi utenti sul database e dargli privilegi limitati in lettura/scrittura su determinate tabelle
3) non posso mettere il file di configurazione con le credenziali di accesso al database, da richiamare nell'include php,  fuori dalla WWW. Quindi sarà tutto raggiungibile via URL.

Dovrei trovare il modo di mettere il comando dentro il PHP nel modo più sicuro possibile.... fermo restando i limiti imposti dall'hoster (al punto 1,2 e 3).

Che mi consigli/iate?

Grazie
: Re:JDatabase Insert
: steganoga 23 Jun 2015, 17:29:26
. tutto questo per schedulare giornalmente l'esecuzione di quell'istruzione.
-------------------------------------------------------------------
si, la prima parte era chiara, è questa che non capisco...

che dati vengono inseriti? ... da dove li prendi?