вот код:
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);
}
}
Если мой CSV-файл:
фамилия, имя, пол
Боб, ах, мужчина
Так что теперь запрос будет: INSERT INTO mytable (lastname,firstname,gender) VALUES ('bob','ah','male')
.Но как, если я хочу вставить дополнительные данные в MySQL вместе с данными в CSV-файле?Например, у меня есть значение $ _POST ['group'] = 'family' и $ _POST ['user_id'] = '10', поэтому я попытался:
$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";
Но в запросе это станет: INSERT INTO mytable (lastname,firstname,gender,custgroup,user_id) VALUES ('bob','ah','male',family,10)
.У него не было одинарных кавычек, поэтому у меня ошибка при вставке записи. Могу ли я решить эту проблему?