Значения привязки PDO не работают [дубликаты]

0

Я хочу вставить значение из моей формы в таблицу 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']);

он возвращает правильные значения, которые я хочу вставить.

Теги:
pdo

3 ответа

0

Не добавляйте кавычки вокруг этого: Formation_id и другой.

0

удалите одинарные кавычки в вашем выражении инструкции prepare:

$requeteAjout = $pdo -> prepare ("INSERT INTO 'users' ( 'Trigramme', 'Formation_id') VALUES (:Trigramme, :Formation_id)");
  • 0
    Когда вы получите шанс, пожалуйста, отредактируйте свой ответ и добавьте код! Моды StackOverflow могут удалить ваш ответ, если он не содержит код для решения.
  • 0
    Спасибо всем: D
0
$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)");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню