在 Laravel 中用引号转义字符串
Escaping a string with quotes in Laravel
我想将 excel 文件的内容插入到我的数据库中。
我只是使用原始查询来实现这一点。
控制器函数
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');
}
我的问题: excel 文件中有像 Mc'Neal 这样的名字,所以我收到一条错误消息。
如何转义 laravel 中的撇号??
我是 laravel 的新手,很乐意提供任何帮助!
你试过了吗addslashes()
?
要为 MS SQL 使用单引号转义字符串,我们需要通过添加另一个单引号来转义它。
以下函数执行此操作。因此,您可以尝试使用此功能:
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"
我想将 excel 文件的内容插入到我的数据库中。
我只是使用原始查询来实现这一点。
控制器函数
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');
}
我的问题: excel 文件中有像 Mc'Neal 这样的名字,所以我收到一条错误消息。
如何转义 laravel 中的撇号??
我是 laravel 的新手,很乐意提供任何帮助!
你试过了吗addslashes()
?
要为 MS SQL 使用单引号转义字符串,我们需要通过添加另一个单引号来转义它。
以下函数执行此操作。因此,您可以尝试使用此功能:
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"