PHP Mysql Otomatik Alıntı?

3 Cevap php

MySQL veritabanında bir satır eklerken, dize değerleri tamsayı gerekmez tırnak içine alınması gerekir.

Ben sadece bir 3. parti işlevine FIELDNAMES ve değerleri bir dizi iletebilirsiniz ve tırnak içinde dize değerlerini koyarak endişelenmenize gerek yok, böylece bu otomatik olarak ilgilenir herhangi bir sınıf veya kitaplık var mı?

Teşekkürler,

3 Cevap

Sadece alıntı daha fazla endişelenmenize gerek; SQL enjeksiyon hakkında endişelenmenize gerek.

Yeni kodu için PDO yerine mysql_ veya mysqli_ fonksiyonları. PDO içinde hazırlanmış deyimleri (PDOStatement nesnesi) kullanın.

Hazırlanıp, tırnak içinde bir şeyler içine zorunda asla ve SQL enjeksiyonu durur.

Eğer kullanırsanız PDO, o zaman bu gibi şeyler hakkında endişelenmenize gerek yok.

Bazı örnekler için PDO::prepare bir göz atın.

Ben Drupal kullanıyorum zaman, db_query("SELECT col FROM tab WHERE id=%d",$id) varsayılan davranış kolları sizin için.

Bu ilk sorguda mysql_real_escape_string ile sprintf kullanmaya benzer. Ve onlar preg_replace_callback() yöntemini kullanmak unutmayın, code they show dan, bunu kendiniz uygulamak, ve o tıklayabilirsiniz ..

Geleneksel şekilde, görmezden eğer PDO (önerilmez):

<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
?>