Задать вопрос
@dudoser
студент

INSERT PDO как?

Скажу сразу, я вчера начал учить PDO по этому вопрос наверно не очень..... но все же.
Пишу регистрацию, но INSERT вообще не работает.

require_once 'connect_db.php';

	function createUser($login, $pass, $email){
		global $pdo;
		$sql = "INSERT INTO user (login, pass, email) VALUES (:login, :pass, :email)";
		$stmt = $pdo->prepare($sql);
		$stmt->bindParam(':login', $login, PDO::PARAM_STR);
		$stmt->bindParam(':pass', $pass, PDO::PARAM_STR);
		$stmt->bindParam(':email', $email, PDO::PARAM_STR);
		$stmt->execute();
		return true;
	}

я в обработчике формы вызываю эту ф-цию
$create = createUser($loginReg, $passReg, $emailReg);

файл : require_once 'connect_db.php';
его код:
$host = '127.0.0.1';
    $db   = 'messenger';
    $user = 'root';
    $pass = 'root';
    $charset = 'utf8';

    $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    $opt = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $pdo = new PDO($dsn, $user, $pass, $opt);

подключение правильное потому что SELECTы работают
а вот добавить нового пользователя не могу
Видел что почти всегда создают объект подключения БД, но я увидел что и так можно.
Вчем здесь проблема?
  • Вопрос задан
  • 3255 просмотров
Подписаться 2 Простой 4 комментария
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Код сам по себе выглядит нормальным. проблема, скорее всего, в чем-то другом.

Но никто не знает - в чем.
Узнать можешь только ты сам, посмотрев ошибку, которую выдает РНР.

Если запись в БД не добавляется, то значит произошла ошибка.
Если произошла ошибка, то надо прочесть ее текст и затем исправить.
Чтобы увидеть текст ошибки, надо либо смотреть лог веб-сервера, либо включить вывод ошибок на экран и повторить вставку.
чтобы понять, в чем проблема, надо прочесть и понять то, что говорится в сообщении об ошибке. Так же можно использовать переводчик гугля и сам гугль, если все равно непонятно, в чем заключается ошибка или как ее исправить.

Разные варианты настроек вывода ошибок можно посмотреть здесь.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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