Addslashes, mysql_real_escape her iki eğik çizgi ekleyerek?

2 Cevap php

Ben bir veritabanına JSON ekleme ile bir sorun yaşıyorum, amacım, değişkenleri almak, bunları json_encode, (magic_quotes itibaren) eğik çizgi kaldırmak ve daha sonra içinde tırnak kaçmak için geri addslashes için {"anahtar": "değer"}

Ne yazık ki, kodlanmış dize şey yapmıyor üzerine strip_slashes ve bu çıktılar

{"content":"<p>This string has it\'s downsides</p>","date":1271352514}

Sonra çıktı, hem addslashes ve mysql_real_escape_string denedim

"{\\"content\\":\\"<p>This string has it\\\'s downsides</p>\\",\\"date\\":1271352514}"

Iki bölü ekleyerek yüzden ben çalışmak değil mi? Ve ben bu aşkın benim saç yırtılma ediyorum, her şey bunun içinde bırakır stripslashes çalışın, ve eğik çizgiler ekleyerek iki ekler. Herhangi bir yardım derece mutluluk duyacağız!

2 Cevap

Zaten böyle bir JSON dize (: JSON yılında / da kaçtı gereken arada) varsa:

{"content":"<p>This string has it\'s downsides<\/p>","date":1271352514}

Sonra sadece bir MySQL dize beyanı içine eklemek için kullanılır böylece onu kaçmak için üzerine mysql_real_escape_string uygulamak gerekir:

$query = "INSERT INTO … SET json='".mysql_real_escape_string($json).'"';

Ve Sihirli Tırnaklar etkin varsa, yapmanız gerekir disable or remove them bu adım önce $json dizesi gerçekten sadece geçerli bir JSON böylece.