За последние 24 часа нас посетили 24430 программистов и 1656 роботов. Сейчас ищут 958 программистов ...

PDO

Тема в разделе "PHP для новичков", создана пользователем BMWSauber, 22 фев 2011.

  1. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3. $dbh = new PDO ("mysql:host=$host;dbname=$db_name", $login, $pass);
    4.  
    5. $t = "INSERT INTO blog1 (topic, message) VALUES ('%s', '%s')";
    6.    
    7.     $sql = sprintf($t, $title, $content);
    8.                      
    9.                
    10. $result = $dbh->exec($sql);
    Безопасен ли этот код - на предмет sql инъекций?
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
  3. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
  4. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
    короче, нагуглил, что вроде бы PDO довольно безопасная штука и беспокоится особо не о чем.
     
  5. Vladson

    Vladson Старожил

    С нами с:
    4 фев 2006
    Сообщения:
    4.040
    Симпатии:
    26
    Адрес:
    Estonia, Tallinn
    Не в данном примере.
    Потому что эта функция работает не с PDO.

    Какой вообще смысл использовать PDO если не использовать его преимущества ? Прекрасная штука есть (по сути тот же sprintf только нормальный) http://www.php.net/manual/en/pdo.prepare.php и вот она то и безопасна.
     
  6. BMWSauber

    BMWSauber Активный пользователь

    С нами с:
    21 ноя 2009
    Сообщения:
    151
    Симпатии:
    0
    согласен! уже исправил

    PHP:
    1.  
    2. <?
    3. $t = "INSERT INTO blog1 (topic, message) VALUES ('%s', '%s')";
    4.    
    5.     $sql = sprintf($t, $title, $content);
    6.                      
    7.     $obj = $dbh->prepare($sql);
    8.     $obj->execute();
    9.  
    так норм?



    PHP:
    1.  
    2. <?
    3. $sql = "INSERT INTO blog1 (topic, message) VALUES (' $title', '$content)";
    4.    
    5.     //$sql = sprintf($t, $title, $content);
    6.                
    7.     $obj = $dbh->prepare($sql);
    8.     $obj->execute();
    9.  
    а если так?
     
  7. VItalijs

    VItalijs Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    244
    Симпатии:
    0
    Адрес:
    Рига, Латвия
    а толку? вы же все равно строку сами задали.
    PHP:
    1.  
    2. <?php
    3.  $sql = "INSERT INTO blog1 (topic, message) VALUES (?,?)";
    4.    
    5.      //$sql = sprintf($t, $title, $content);
    6.              
    7.      $obj = $dbh->prepare($sql);
    8.      $obj->execute(array($title, $content));
    9.  
    вот так уже вроде лучше