Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mssql_escape保存双撇号_Php_Sql_Sql Injection_Apostrophe - Fatal编程技术网

Php mssql_escape保存双撇号

Php mssql_escape保存双撇号,php,sql,sql-injection,apostrophe,Php,Sql,Sql Injection,Apostrophe,在将字符串插入数据库之前,我正在使用下面的函数对其进行转义。虽然它实际上将双撇号插入到数据库中,当我打印出来时,它仍然有双撇号。使用原始单撇号打印值的正确方法是什么 function mssql_escape($var){ if(get_magic_quotes_gpc()){ $var = stripslashes($var); } return str_replace("'", "''", $var); } 因为您使用的是参数化语句,所以不需要将单引

在将字符串插入数据库之前,我正在使用下面的函数对其进行转义。虽然它实际上将双撇号插入到数据库中,当我打印出来时,它仍然有双撇号。使用原始单撇号打印值的正确方法是什么

function mssql_escape($var){
    if(get_magic_quotes_gpc()){
        $var = stripslashes($var);
    }
    return str_replace("'", "''", $var);
}

因为您使用的是参数化语句,所以不需要将单引号对折。这是正确的做法,通常不会受到SQL注入攻击。

如果要将SQL语句构建为单个字符串,只需将撇号加倍即可。我猜你不是。我正在使用以下命令:$value=mssql_escape($_REQUEST['value']);$query=“插入到表名(值)值(?)$params=数组($value)$stmt=sqlsrv_query($connection、$query、$params);如果($stmt==false){die(print_r(sqlsrv_errors(),true));}谢谢!我现在就实施这个。