@Dropsen
учусь веб-разработке.

PDO код для вставки?

Только учусь php
Нашёл источник с вот таким кодом для вставки в таблицу:
Нужна ваша помощь разобраться в этом коде
function pdoSet($allowed, &$values, $source = array()) {
  $set = '';
  $values = array();
  if (!$source) $source = &$_POST;
  foreach ($allowed as $field) {
    if (isset($source[$field])) {
      $set.="`".str_replace("`","``",$field)."`". "=:$field, ";
      $values[$field] = $source[$field];
    }
  }
  return substr($set, 0, -2); 
}


продолжение:
$allowed = array("name","surname","email"); // allowed fields
$sql = "INSERT INTO users SET ".pdoSet($allowed,$values);
$stm = $dbh->prepare($sql);
$stm->execute($values);


до этого смог сделать вставку с переменными через mysql. Сейчас стараюсь повысить свой уровень. Но тут немного в тупик ушёл)
Заранее спасибо за ответ)

P.S Ссылка на источник phpfaq.ru/pdo#fetchall
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Начнем с того, что это автоиматизированный код для вставки.
А сначала надо научиться вставлять вручную.

Вручную всё делается просто
$sql = "INSERT INTO users (name, surname, sex) VALUES (?,?,?)";
$stmt= $pdo->prepare($sql);
$stmt->execute([$name, $surname, $sex]);

Сначала заменяем все переменные в запросе на знаки вопроса
Потом делаем prepare этого запроса
И затем делаем execute, передавая переменные для вставки в виде массива
Понятно?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы