2013-03-09 2 views
0

Я не знаю, в чем проблема с моим кодом. Он не вставляет данные в базу данных. Вот.PHP: PDO: Почему мои данные не вставляются?

$adduser = $con->prepare("INSERT INTO 'basicuserinfo'(email, password, firstname, lastname) VALUES(:email, :password, :firstname, :lastname)"); 
    $adduser->bindValue(':email', $email); 
    $adduser->bindValue(':password', $password); 
    $adduser->bindValue(':firstname', $firstname); 
    $adduser->bindValue(':lastname', $lastname); 
    $adduser->execute(); 
+0

ПОДСОЕДИНЯЙТЕ способ описан [здесь] (http://stackoverflow.com/tags/pdo/info) и узнайте –

+4

о, подождите, это проще. удалите '' 's из имени таблицы. и получить себе книгу по основному синтаксису SQL –

+0

@YourCommonSense имя таблицы может быть чувствительным к регистру, и проблема может заключаться в отсутствии пробела между «basicuserinfo» и «(». Во-вторых, я бы рекомендовал изменить '$ adduser-> bindValue (': email', $ email); 'to:' $ adduser-> bindValue (': email', $ email, PDO :: PARAM_STR); 'и делать это со всеми параметрами – alfasin

ответ

2

INSERT INTO 'basicuserinfo'(email, password, firstname, lastname) VALUES(:email, :password, :firstname, :lastname)

Это не является допустимым заявление SQL. Избавьтесь от ' s.

0

Уверен, что он преуспел? Вы не проверяя выполнение, как в:

if(!$adduser->execute()) echo "Execute failed"; 

Вы, вероятно, обнаружите, что он бросает ошибку на "вокруг имени таблицы.

+0

Этот код не должен быть. Правильный способ описан в теге wiki. –

-2

Попробуйте это ..

$adduser = $con->prepare("INSERT INTO `basicuserinfo`(email, password, firstname, lastname) 
         VALUES(?, ? , ? , ?)"); 
$adduser->bindParam('ssss', $email,$password , $firstname,$lastname); 
$adduser->execute(); 

В этом способе подготовить заявление вы можете уменьшить ваше выполняющееся время ..

тогда не оденьте apostapy перед имя_таблицей

+0

эй вы попробуете этот вид подготовительного заявления .. он достоин вас .. – Ranjith

+0

, пожалуйста, сначала попробуйте этот код –

Смежные вопросы