2015-11-15 4 views
-2

Я пытаюсь вставить новые записи в свою базу данных, используя следующий код.Невозможно вставить записи в базу данных с помощью PHP (PDO)

<?php 
session_start(); 
$db = new PDO('mysql:host=localhost;dbname=blog;charset=utf8', 'root', ''); 

if (isset($_POST['register'])) { 
    $user = $_POST['user']; 
    $password = $_POST['password']; 

    $insert = $db->prepare("INSERT INTO users (user,password) VALUES ('$user,$password')"); 
    $insert->execute(); 
} 
?> 

И вот часть html.

<!DOCTYPE html> 
<html> 
<head> 
    <title>Register!</title> 
</head> 
<body> 
<form method="post" name="register"> 
    <label>Registration</label><br> 
    <label>New username</label><br> 
    <input type="text" name="user"><br> 
    <label>New password</label><br> 
    <input type="text" name="password"><br> 
    <input type="submit" name="register" value="Register now!"> 
</form> 
</body> 
</html> 

Тем не менее код по какой-то причине не работает, и я не могу понять, почему он не будет работать.
Подробности: Название

  • Моя таблица является на самом деле "пользователей".
  • Имя обоих полей верное.
  • Я могу получить данные из базы данных с помощью PDO.
  • Я также могу войти в базу данных через PDO.
  • Объект PDO, который подключается к базе данных, работает над именем входа и извлекаемыми формами.
+2

'VALUES ('$ пользователя', '$ пароль')' вы оба значения в одинарные кавычки, необходимо одиночные кавычки для каждого.Better еще использовать подготовленный оператор – Mihai

+0

'' $ user, $ password'' - это одна строка. –

+0

Этот вопрос не следует игнорировать! Что с тобой ?! –

ответ

0

Посмотрите в правильное использование Prepare метода ПДО:

$insert = $db->prepare("INSERT INTO users (user,password) VALUES (:user,:password)"); 
$insert->execute(array(':user'=>$user, ':password'=>$password)); 
Смежные вопросы