Всем привет, подскажите почему не работает такое экранирование? $sql = $db->prepare("SELECT id FROM table WHERE login=:login AND password=assword AND mybd=:mybd"); $stmt->bindParam(':login', $login); $stmt->bindParam('assword', $password); $stmt->bindParam(':mybd', 200); $sql->execute(); $myrow = $sql->fetch(); Как правильно?
и что происходит? Добавлено спустя 1 минуту 30 секунд: наверное тебе ошибки выводятся, а ты на них x* забил, сразу на форум к умным дядькам побежал.
Ну то есть это норм? Я так понимаю, bindParam нужно делать из объекта класса PDOStatement, который возващается при выполнении prepare? Т. е. $sql->bindParam(bla-bla-bla)
начинай отлаживать. в моей подписи есть полезное руководство. только сначала скажи: что ДОЛЖНО БЫЛО произойти? ну допустим ты успешно получил в переменную данные… что дальше?
и? Добавлено спустя 2 минуты 17 секунд: он не учится, а копирует. нельзя ему конкретный код давать — для его же блага.
Во понял, чуть по другому оказывается надо $stmt = $db->prepare("SELECT id FROM table WHERE login=? AND password=? AND mybd=?"); $stmt->bindValue(1,$login, PDO:ARAM_INT); $stmt->bindValue(2, $password, PDO:ARAM_STR); $stmt->bindValue(3, 200, PDO:ARAM_STR); $stmt->execute(); $myrow = $stmt->fetch();
По индексу. ТСу Хочется же народу биндить всю эту хреновину с морковиной. Интересно, а если там 15 таблиц-списков и несколько N:N ... группировка, форматирование, конкатенация и прочая тряхомудия которая на БД сделается на халяву - вы все равно будете биндить в силект тридцать переменных? Самая мякотка что запрос рода залогиниться делается ровно 1 раз на всю сессию или с рук, или с куков. И на козе баян там вся эта кухня? Добавлено спустя 5 минут 41 секунду: Короче, веб-программисты, откройте на своем компе прикладку ODBC - так вот это самое PDO кагбе претендует там поселиться, среди обширного списка коннектов. ВОт и все. Все остальное - ну приписали чуваки типа моднейшие фичи. Кстати, аллюзия ADO - PDO, не находите? Добавлено спустя 2 минуты 19 секунд: Ну вот, с учетом того что в ADO имеется в распоряжении уже лет 15, PDO попросту никогда не догнать никакое ADO и смысла даже нет дрыгаться. Ну то есть если не хотите фигней страдать, платите за ASP и там будет вам и ADO и кофэ и сигарета... То есть надо четко понимать что никакая это нафиг не передовая технология, все уже давным давно изобретено и запатентовано. Это просто бесплатная аллюзия. Не обольщайтесь.