@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ы работают
а вот добавить нового пользователя не могу
Видел что почти всегда создают объект подключения БД, но я увидел что и так можно.
Вчем здесь проблема?
  • Вопрос задан
  • 3174 просмотра
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Код сам по себе выглядит нормальным. проблема, скорее всего, в чем-то другом.

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

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

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽