SQL Server için alternatif mysql_real_escape_string

3 Cevap php

SQL Server dizeleri kaçan PHP eşdeğer nedir merak ediyorum?

3 Cevap

Güzel bir soru, bilmiyorum ama PDO::quote() with the PDO_DBLIB sürücü kullanabilirsiniz.


EDIT: gibi görünüyor this guy got it from StackOverflow:

function mssql_escape($data) {
    if(is_numeric($data))
        return $data;
    $unpacked = unpack('H*hex', $data);
    return '0x' . $unpacked['hex'];
}

Başka bir seçenek:

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

Iyi alternatif Parametrelenmiş sorguları kullanmaktır, sonra dizeleri kaçmak zorunda değilsiniz.

Eğer hala birlikte kendini, SQL Server (T-SQL) için bir dize kaçmak için doğru yolu sorgu koymak istiyorsanız iki kesme ile dizesindeki her kesme işareti (') değiştirmektir.

Kısa cevap: bağlantı kütüphaneleri sağlamak ne mekanizması kullanımı, gerçekten veritabanı ile hiçbir ilgisi yoktur. ADO kullanarak ediyorsanız, size başka bir şey (PHP hakkında bir şey biliyor) kullanıyorsanız o zaman ne olursa olsun kütüphane teklifler kullanın, parametreli sorgu var.

Kendi Rolling yanlış bir şey almak çok olasıdır çünkü, muhtemelen kötü bir fikir, örneğin, doğru yorum sınırlayıcıları taşıma.