2015-03-11 2 views
0

Я использую функцию ниже, чтобы избежать моей строки, прежде чем она будет вставлена ​​в БД. Хотя он фактически вставляет двойной апостроф в базу данных, и когда я его распечатываю, у него все еще есть двойной апостроф. Каков правильный способ распечатать значение с оригинальным одиночным апострофом?mssql_escape сохраняет двойной апостроф

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

Вам нужно только удвоить апострофы, если вы строите инструкцию SQL как одну строку. Я предполагаю, что нет. –

+0

Я использую следующее: $ value = mssql_escape ($ _ REQUEST ['value']); \t $ query = "INSERT INTO TableName (значение) VALUES (?)"; $ params = array ($ value); $ stmt = sqlsrv_query ($ connection, $ query, $ params); if ($ stmt === false) {die (print_r (sqlsrv_errors(), true));} – GrumpyCat

ответ

0

Поскольку вы используете параметризованный оператор, нет необходимости удваивать одиночные кавычки. Это правильный способ делать вещи и, как правило, безопасен от атак SQL Injection.

+0

Спасибо! Я это сделаю сейчас. – GrumpyCat