Я хочу вставить значение из моей формы в таблицу SQL.
Здесь форма:
<form action="index.php?id=" method="GET">
<input id="Trigramme" name="Trigramme" type="text" value="<?php
if (empty($_GET['Trigramme'])):
echo ('');
else:
echo ($_GET['Trigramme']);
endif;
?>">
<input id='idFormation' type="hidden" name="id" value="<?php
if ($formations['ID'] <= $maxIdFormation['Max_ID']):
echo ($formations['ID']+1);
else:
echo ('1');
endif;
?>">
<input type="submit">
</form>
И здесь функция, которую я использую для вставки:
function ajouterMembre($infosMembre){
$pdo = getDb();
$requeteAjout = $pdo -> prepare ("INSERT INTO 'users' ( 'Trigramme', 'Formation_id') VALUES (':Trigramme', ':Formation_id')");
$requeteAjout -> bindValue(':Trigramme', $infosMembre['Trigramme']);
$requeteAjout -> bindValue(':Formation_id', $infosMembre['id']);
$requeteAjout -> execute();
var_dump($requeteAjout);
var_dump( $infosMembre['id']);
var_dump( $infosMembre['Trigramme']);
return $pdo-> lastInsertId();
}
И, наконец, это функция, которую я использую в своем HTML:
<?php $idNouveauMembre = ajouterMembre($_GET); ?>
Проблема заключается в том, что SQL возвращает значения Trigramme = :Trigramme
и id = 0
.
Я предполагаю, что мой bindValue
работает неправильно. Но когда я пытаюсь проверить:
var_dump( $infosMembre['id']);
var_dump( $infosMembre['Trigramme']);
он возвращает правильные значения, которые я хочу вставить.
Не добавляйте кавычки вокруг этого: Formation_id и другой.
удалите одинарные кавычки в вашем выражении инструкции prepare
:
$requeteAjout = $pdo -> prepare ("INSERT INTO 'users' ( 'Trigramme', 'Formation_id') VALUES (:Trigramme, :Formation_id)");
$requeteAjout = $pdo -> prepare ("INSERT INTO 'users' ( 'Trigramme', 'Formation_id') VALUES (':Trigramme', ':Formation_id')");
замените эту строку кода на эту
$requeteAjout = $pdo -> prepare("INSERT INTO 'users' ( 'Trigramme', 'Formation_id') VALUES (:Trigramme, :Formation_id)");