2015-04-16 2 views
0

Im новое для PDO и попытка вставить результат запроса в таблицу.mysql insert в значение другого запроса

$statement_count_laeufer = $dbh->query('SELECT COUNT(Laeufer_Nachname)+1 FROM tbl_Laeufer;'); 
$result_count_laeufer = $statement_count_laeufer->fetchALL(PDO::FETCH_CLASS); 

Это мой запрос, который подсчитывает запись из столбца в таблице, и теперь я хочу, чтобы использовать результат в INSERT INTO запроса

$statement = $dbh->prepare("INSERT INTO tbl_Lauf (FK_ID_Veranstaltung, FK_ID_Laeufer) VALUES (".$_POST[event].", ".$result_count_laeufer.") 

При печати/эхо $ statement_count_laeufer это показывает мне

Array ([0] => stdClass Object ([COUNT(Laeufer_Nachname)+1] => 2203)) 

Но я просто хочу, чтобы использовать 2203.

Спасибо за помощь в ADV Анс.

+1

вы определили для 'fetchAll' возвращать класс. Вам нужно получить значение из него или вместо этого использовать PDO :: FETCH_ARRAY. Также 'подготовка' предназначена для использования заполнителей. Вы должны прочитать их вместо того, чтобы вставлять переменные в ваш запрос. – Cfreak

ответ

1

Вы должны быть в состоянии сделать это;

$statement = $dbh->prepare("INSERT INTO tbl_Lauf (FK_ID_Veranstaltung, FK_ID_Laeufer) VALUES (".$_POST[event].", (SELECT COUNT(Laeufer_Nachname)+1 FROM tbl_Laeufer)"; 

Mysql позволяет использовать результат в select запроса в запросе insert

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