@Kristina8787

Почему данные не добавляются в БД?

задаю через pdo вставку данных в таблицу бд
$result2 = $db->prepare("INSERT INTO users (login,password) VALUES(:login, :password)");

    $result2 -> bindParam(':login', $login);
    $result2 -> bindParam(':password', $password);
    $result2->execute();


  
    // Проверяем, есть ли ошибки
    if ($result2==TRUE)
    {
    echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт.";?> <a href='index.php'>Главная страница</a><?php
    }
 else {
    echo "Ошибка! Вы не зарегистрированы.";
    }

в итоге при вводе данных вардампала после execute $result2 , получаю :
PDOStatement Object
(
[queryString] => INSERT INTO users (login,password) VALUES(:login, :password)
)
и сообщение что успешно зарегестрирована, но в бд запись не добавилась , и значения в insert не подставились как видно,пробовала разные варианты добавления через PDO , ни один пока не помог,не понимаю в чем дело(
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Охохохооо, по новой....
1) проверьте var_dump($login) и var_dump($password), есть ли там что-то
2) сначала "руками" проверьте вставляется ли ваш запрос в бд, идете в пхпмайадмин и выполняете INSERT INTO users (login,password) VALUES('aa', 'bb');
3) Смотрите на ошибки, если имеются, потом думаете...

на будущее делайте проверку
try {
            $result2->execute();
        }
        catch(PDOException $e) {
            echo $e->getMessage();
        }


UPD: Как заметил Лентюй, новичкам не совсем очевидно что пдо нужно настроить перед использованием, в частности вывод ошибок нужно выставить через
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы