За последние 24 часа нас посетили 16327 программистов и 1585 роботов. Сейчас ищут 1517 программистов ...

проблема с PDO::bindParam()

Тема в разделе "PHP и базы данных", создана пользователем vezunchik, 21 июл 2011.

  1. vezunchik

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

    С нами с:
    13 окт 2007
    Сообщения:
    32
    Симпатии:
    0
    Адрес:
    Минск
    Подскажите, имеется следующий код работы с PDO библиотекой:

    Код (Text):
    1.  
    2. $sth = $dbh->prepare('insert into table1 set last_name=:last_name,pay=:pay');
    3.  
    4. $sth->bindParam(':last_name', $last_name, PDO::PARAM_STR, 2);
    5. $sth->bindParam(':pay', $pay, PDO::PARAM_BOOL);
    6.  
    7. $last_name = "ТестТестТест";
    8. $pay = "5000";
    9.  
    10. $res = $sth->execute();
    Как я понимаю, в поле `last_name` должно в итоге сохраниться значение 'Те', а в поле `pay` значение '1'. Но сохраняются полные значения переменных, т.е. `last_name`='ТестТестТест' и `pay`='5000'

    Что я неправильно понимаю?
     
  2. neverlose

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

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    1. Объявление переменных должно идти до $sth->bindParam

    2. Не уверен, но мне кажется, что запрос либо пройдёт санитизацию и вы получите ОР, либо запрос не пройдёт и будет ошибка.
     
  3. vezunchik

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

    С нами с:
    13 окт 2007
    Сообщения:
    32
    Симпатии:
    0
    Адрес:
    Минск
    помойму это справедливо только для bindValue(), а для bindParam() всеравно т.к. он привязывает не значение переменной, а переменную по ссылке. главное чтобы привязка была до execute()

    а что такое `санитизация` и `OP`?
    А запрос проходит, но вставляются не те значения, которые я ожидаю.