Inserire array in db

  • Creatore Discussione Creatore Discussione james81
  • Data di inizio Data di inizio

james81

Utente Attivo
14 Set 2010
72
0
0
Ciao a tutti!
ho un array:
PHP:
$fields = array(
"sss" => $id ,
"aaa" => $aaa ,
"ddd" => 1 ,
"uuu" => 0 ,
);

e utilizzo questo codice per inserirlo per inserirlo in un db mysql ma non và

PHP:
foreach($fields as $key => $value){
			$cella["key"][] = "$key";
			$cella["dato"][] = !empty($value) ? $value : "NULL";
			}
			$query90 = "INSERT TABLE INTO axo_main_tool (".implode(",",$cella["key"]).") VALUES (".implode(",",$cella["dato"]).") ";
			$result90 = mysql_query($query90);
}


grazie
 
Ultima modifica di un moderatore:
Prova così:
PHP:
$fields = array(
    'sss' => 1,
    'aaa' => 'prova',
    'ddd' => 1,
    'uuu' => 0,
);

$cella = array(
    'key'  => array(),
    'dato' => array(),
);

foreach ($fields as $key => $value) {
    $cella['key'][]  = $key;
    $cella['dato'][] = !is_null($value) ? "'{$value}'" : 'NULL';
}

$query90 = 'INSERT INTO axo_main_tool (' . implode(',', $cella['key']) . ') VALUES (' . implode(',', $cella['dato']) . ')';
// ...
 
Ultima modifica:
Ma che significa non va? La query SQL restituita è corretta:
PHP:
$fields = array( 
    'sss' => 1, 
    'aaa' => 'prova', 
    'ddd' => 1, 
    'uuu' => 0, 
); 

$cella = array( 
    'key'  => array(), 
    'dato' => array(), 
); 

foreach ($fields as $key => $value) { 
    $cella['key'][]  = $key; 
    $cella['dato'][] = !is_null($value) ? "'{$value}'" : 'NULL'; 
} 

// INSERT INTO axo_main_tool (sss,aaa,ddd,uuu) VALUES ('1','prova','1','0')
$query90 = 'INSERT INTO axo_main_tool (' . implode(',', $cella['key']) . ') VALUES (' . implode(',', $cella['dato']) . ')';
Controlla se l'esecuzione va a buon fine con:
PHP:
$result90 = mysql_query($query90) or die(mysql_error());
 
Ultima modifica:
allora per non và intendo che mi dà sempre solito risultato, lo script arriva alla fine, ma non mi inserisce nulla in db, per curiosistà aveveo già provato ad inserire una query manualmente e funziona correttamente

PHP:
// INSERT TABLE INTO axo_main_tool (sss,aaa,ddd,uuu) VALUES ('1','prova','1','0')

l'errore che mi dà è:

HTML:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TABLE INTO axo_main_tool  (obj_id,obj_ean) VALUES ('1833389','1226932')' at line 1
 
così mi funzione....nel senso che mi inserisce i dati ma mi stampa a schermo sempre quest'errore:

" Column 'aaa' cannot be null "

PHP:
foreach ($fields as $key => $value) {
    		$cella['key'][]  = $key;
    		$cella['dato'][] = !is_null($value) ? "'{$value}'" : 'NULL';
                }

$query90 = "INSERT INTO axo_main_tool (".implode(",",$cella["key"]).") VALUES (".implode(",",$cella["dato"]).") "; 
			
			$result90 = mysql_query($query90) or die(mysql_error());
 

Discussioni simili