Errore query di inerimento

3 contenuti / 0 new
Ultimo contenuto
Errore query di inerimento

ciao

in un mio modulo, dopo aver raccolto e validato dei dati con delle webform voglio inserirli in una tabella di un MIO database

<?php
    
function notizie_submit($form, &$form_state){
       
$db_url['pippo'] = 'mysql://marco:[email protected]/pippo';
       
db_set_active('pippo');
       
db_query("INSERT INTO {prova} (Titolo) VALUES ('%s')", $form_state['values']['Titolo']);
       
drupal_set_message(t('Your form has been saved.'));
// essendo in fase di test mi limito ad inserire il campo titolo
   
}
?>

ma mi ritorna questo errore nonostante $form_state['values']['Titolo'] sia un array

Recoverable fatal error: Argument 2 passed to db_query() must be an array, string given, called in /var/www/drupal-7.7/sites/all/modules/custom/News/News.module on line 344 and defined in db_query() (linea 2282 di /var/www/drupal-7.7/includes/database/database.inc).

sapete di cosa si tratta??
io usco drupal 7.... può essere un bug?????

ciao e grazie

Marco

in db_query il secondo argomento deve essere un array, nel tuo caso gli passi un singolo elemento, guarda questo:

$uid = 1;
$result = db_query('SELECT n.nid, n.title, n.created FROM {node} n WHERE n.uid = :uid', array(':uid' => $uid));

Nel tuo caso sarà una cosa del tipo:
$val = $form_state['values']['Titolo'];
db_query("INSERT INTO {prova} (Titolo) VALUES (':val')", array(':val' => $val));

Fonte: http://api.drupal.org/api/drupal/includes--database--database.inc/functi...

ciao ealmuno, grazie della risposta

ho risolto cosi', alcune delle istruzioni del mio tentativo precedente non erano compatibili con drupal 7

<?php
 
function notizie_submit($form, &$form_state){
       
$db = array(
             
'database' => 'pippo',
             
'username' => 'marco', //
             
'password' => 'sviluppo',
             
'host' => '172.21.4.52',
             
'driver' => 'mysql',
        );
       
Database::addConnectionInfo('news', 'default', $db);
       
db_set_active('news');
       
$nid = db_insert('prova')
        ->
fields(array(
         
'DataPubblicazione' => $form_state['values']['DataPubblicazione'],
         
'DataScadenza' => $form_state['values']['DataScadenza'],
         
'FlagHomePage' => $form_state['values']['FlagHomePage'],
         
'InizioHome' => $form_state['values']['InizioHome'],
         
'FineHome' => $form_state['values']['FineHome'],
         
'Titolo' => $form_state['values']['Titolo'],
         
'Sottotitolo' => $form_state['values']['Sottotitolo'],
         
'Testo' => $form_state['values']['DataScadenza'],
         
'NomeContatto' => $form_state['values']['NomeContatto'],
         
'EmailContatto' => $form_state['values']['EmailContatto'],
         
'Tel1Contatto' => $form_state['values']['Tel1Contatto'],
         
'Tel2Contatto' => $form_state['values']['Tel2Contatto'],
         
'FaxContatto' => $form_state['values']['FaxContatto'],
         
'IndirizzoContatto' => $form_state['values']['IndirizzoContatto'],
        ))
        ->
execute();
       
db_set_active();
       
drupal_set_message(t('Notizia inserita con successo.'));
    }
?>

ciao Marco