voici le code:Comment insérer des données supplémentaires dans MySQL en utilisant imploser
if (($handle = fopen($source_file, "r")) !== FALSE) {
$columns = fgetcsv($handle, $max_line_length, ",");
foreach ($columns as &$column) {
$column = str_replace(".","",$column);
}
while (($data = fgetcsv($handle, $max_line_length, ",")) !== FALSE) {
while(count($data) < count($columns)) {
array_push($data, NULL);
}
$c = count($data);
for($i = 0; $i < $c; $i++) {
$data[$i] = "'{$data[$i]}'";
}
$sql[] = '(' . implode(',',$data) . ','.$_POST[group].')';
}
$sql = implode(',',$sql);
$query = "INSERT INTO mytable (".mysql_real_escape_string(implode(",",$columns)).",Custgroup,user_id) VALUES "
. $sql . "\n";
mysql_query($query) or trigger_error(mysql_error());
fclose($handle);
}
}
Si mon fichier csv est:
nom, prénom, sexe
bob, ah, mâle
Alors maintenant la requête sera: INSERT INTO mytable (lastname,firstname,gender) VALUES ('bob','ah','male')
. Mais comment faire si je veux insérer des données supplémentaires dans mysql avec les données dans le fichier csv? Tel que j'ai une valeur $ _POST [ 'groupe'] = 'famille' et $ _POST [ 'user_id'] = '10', alors j'ai essayé:
$sql[] = '(' . implode(',',$data) . ','.$_POST[group].','.$_POST[user_id].')';
$query = "INSERT INTO $target_table (".mysql_real_escape_string(implode(",",$columns)).",custgroup,user_id) VALUES "
. implode(',',$sql) . "\n";
Mais dans la requête, il deviendra: INSERT INTO mytable (lastname,firstname,gender,custgroup,user_id) VALUES ('bob','ah','male',family,10)
. Il n'a pas eu de guillemets simples, donc j'ai une erreur pour insérer l'enregistrement.Puis-je savoir comment résoudre ce problème?
quel est le point de faire mysql_real_escape_string (implode (',', $ columns))? –