SORU
22 ŞUBAT 2009, Pazar


Nasıl SQL Server dizeleri PHP kullanarak kaçmak için?

SQL Server için mysql_real_escape_string() Alternatif arıyorum. addslashes() kullanılabilecek en iyi seçenek ya da başka bir alternatif işlevi var mı?

Edit: mysql_error() alternatif de yararlı olacaktır.

CEVAP
22 ŞUBAT 2009, Pazar


addslashes() tam yeterli değil, ama PHP mssql paketi herhangi bir iyi bir alternatif sağlamaz. Çirkin ama tam olarak genel çözüm hex bir örneğini oluşturur bytestring olarak veri kodlama yani

$unpacked = unpack('H*hex', $data);
mssql_query('
    INSERT INTO sometable (somecolumn)
    VALUES (0x' . $unpacked['hex'] . ')
');

Soyutlanmış, olacaktır:

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

mssql_query('
    INSERT INTO sometable (somecolumn)
    VALUES (' . mssql_escape($somevalue) . ')
');

mysql_error() eşdeğer mssql_get_last_message().

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • InfinityWard

    InfinityWard

    19 EYLÜL 2006
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011
  • VJ VIMANA

    VJ VIMANA

    3 Mayıs 2007