2011-06-03 17 views
17

Bu sorgu için mysql_real_escape_string'u kullanmak gerekiyor mu?Hazırlanan ifadeleri kullanırken mysql_real_escape_string() gerekli midir?

Herhangi bir iyileştirme veya sorgulama sorunlu mu? Bu durumda, sorgu hızı önemlidir.

+0

olası yinelemesi [PHP MySQLi, ilişkili parametreler güvenli sorgularla hazır mı?] (Http://stackoverflow.com/questions/1561586/are-php-mysqli-prepared-queries-with-bound-parameters-secure) – outis

cevap

20

Hayır, hazır sorgular (doğru kullanıldığında) güvenli sorgulama için verilerin düzgün bir şekilde kaçmasını sağlar. Onları düzgün bir şekilde kullanıyorsunuz, sadece bir şeyi değiştirmelisiniz. Çünkü sen kullanıyorsun? Yer tutucu, yürütme yöntemiyle paramları geçmek daha iyidir. Eğer sayfanızı gösteren çıktılıyorsanız

$sql->execute(array($consulta));

Sadece dikkatli olun, veritabanı sanitization o HTML içinde görüntü için güvenli olacak anlamına gelmez, bu nedenle de üzerinde() htmlspecialchars çalıştırın.

+0

Yani, böyle bir şey? $ SQL-> bind_param ('s'); $ SQL-> yürütmek (array ($ müzakere'nin)); – anvd

+0

Sorta, sadece orada bind_param gevşek ve iyi olmalı. Yaptığınız her şey sadece çağrı yapmaya gittiğinizde paramizi bağlamaktır -> execute(); – SamT

+0

ve herhangi bir avantaj var mı? teşekkürler – anvd