2014-09-22 5 views
1

Ok так что мне нужно вставить несколько значений в таблицу, но мне нужно найти одну из данных в базе данных, так что я пытался сделать это такInsert Into с Select (PDO) и PHP

$bookid = $_GET['var']; 
$username = $_GET['username']; 

$quer2 = "Insert Into reserved (username,bookid) VALUES ((SELECT userid FROM users WHERE username=:username),:var)"; 
$query2 = $dbc->prepare($quer2); 
$query2 ->bindParam(':username',$username); 
$query2 ->bindParam(':var',$bookid); 
$query2 ->execute(); 

проблема заключается в том, что я получаю эту ошибку

SQLSTATE[23502]: Not null violation: 7 ERROR: null value in column "username" violates not-null constraint DETAIL: Failing row contains (6, null, 2014-09-22 13:06:33.262).

Я попробовал запрос в базу данных, и она работает, так что я думаю, что есть какая-то ошибка в bindParam, но я не могу понять, что это такое ... так что если кто-нибудь мог бы помочь мне, я был бы признателен, спасибо

+1

здесь есть ошибка: $ query2 -> bindParam (': var', $ var); используйте $ bookid вместо $ var – Pundit

ответ

2

изменения

$query2 ->bindParam(':var',$var); 

в

$query2 ->bindParam(':var',$bookid); 

обновления вашего запроса на что-то вроде этого

Insert Into reserved (username,bookid) 
SELECT userid, :var FROM users WHERE username=:username 

просто связать Params и выполнить запрос.

+0

thx и извините, но это была глупая ошибка, и проблемы по-прежнему остаются на том, что теперь для «имени пользователя» ... я отредактирую код – Alex

+0

@Alex Я обновил свой ответ, вы может проверить это сейчас. –

+0

спасибо, что это работает – Alex

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