J'aimerais insérer le contenu d'un fichier Excel dans ma base de données.
J'utilise simplement une requête brute pour y parvenir.
public function uploadExcel()
{
$filename = Input::file('import_file')->getRealPath();
$file = fopen($filename, "r");
$count = 0;
while (($emapData = fgetcsv($file, 10000, "\t")) !== FALSE) {
$count++;
if($count>1) {
DB::statement("INSERT INTO `members` (
member_title,
member_first_name,
member_name_affix,
member_last_name,
member_private_address,
member_private_Zip_code,
member_private_location,
member_private_phone,
member_private_mobile,
member_private_fax,
member_private_mail,
member_business_position,
member_business_name,
member_business_address,
member_business_Zip_code,
member_business_location,
member_business_area_code,
member_business_phone,
member_business_fax,
member_business_mobile,
member_business_mail,
member_join_date,
extra
) VALUES (
'$emapData[0]',
'$emapData[1]',
'$emapData[2]',
'$emapData[3]',
'$emapData[4]',
'$emapData[5]',
'$emapData[6]',
'$emapData[7]',
'$emapData[8]',
'$emapData[9]',
'$emapData[10]',
'$emapData[11]',
'$emapData[12]',
'$emapData[13]',
'$emapData[14]',
'$emapData[15]',
'$emapData[16]',
'$emapData[17]',
'$emapData[18]',
'$emapData[19]',
'$emapData[20]',
'$emapData[21]',
'$emapData[22]'
)");
}
}
return redirect('index.index');
}
avez-vous essayé addslashes()
?
Pour échapper des chaînes avec des guillemets simples pour MS SQL, nous aurions besoin de l'échapper en ajoutant un autre guillemet simple.
La fonction suivante fait cela. Donc, vous pouvez essayer d’utiliser cette fonction:
public static function mssql_escape($unsafe_str)
{
if (get_magic_quotes_gpc())
{
$unsafe_str = stripslashes($unsafe_str);
}
return $escaped_str = str_replace("'", "''", $unsafe_str);
}
//for example $unsafe = "AB'CD'EF";
$escaped = mssql_escape($unsafe);
echo $escaped;// Would output the escaped string as "AB''CD''EF"