Mysql
 sql >> база данни >  >> RDS >> Mysql

Вмъкване/актуализиране на помощна функция с помощта на PDO

Обикновено имам PDO, разширяващ клас, но моят клас е доста персонализиран. Ако го почистя и тествам, ще го публикувам по-късно. Ето решение за вашата система обаче.

function dbSet($fields, &$values) {
    $set = '';
    $values = array();

    foreach ($fields as $field) {
        if (isset($_POST[$field])) {
            $set .= "`$field` = ?,";
            $values[] = $_POST[$field];
        }
    }

    return rtrim($set, ',');
}

$fields = explode(" ","name surname lastname address zip fax phone date");
$_POST['date'] = $_POST['y']."-".$_POST['m']."-"$_POST['d'];

$query  = "UPDATE $table SET ".dbSet($fields, $values).", stamp=NOW() WHERE id=?";
$values[] = $id;

$dbh->prepare($query);
$dbh->execute($values);  

Това може да не е идеално и може да се нуждае от настройване. Той взема предвид, че $dbh се настройва с PDO връзка. В очакване на някакви незначителни проблеми със синтаксиса, които направих, това трябва да работи.

РЕДАКТИРАНЕ

Наистина обаче мисля, че бих отишъл за Doctrine ORM (или друг ORM). Докато настройвате модела и добавяте цялата валидация там, тогава е толкова просто:

$table = new Table();
$table->fromArray($_POST);
$table->save();

Това трябва да попълни съдържанието лесно. Това разбира се е с ORM, като Doctrine.

АКТУАЛИЗИРАНО

Направих някои малки корекции в първия код, като например поставяне на isset обратно и с помощта на rtrim над substr . Ще работя по предоставянето на макет на клас за разширение на PDO просто трябва да очертая начина, по който да го направя, и да направя някои тестове за модули, за да се уверя, че работи.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да обърнете реда на символите в низ в MySQL

  2. Какво е местоположението на mysql клиента .my.cnf в XAMPP за Windows?

  3. Безплатни методи за поправяне на повредена MySQL база данни

  4. CURRENT_DATE Примери – MySQL

  5. Преобразувайте MySql DateTime печат във формат за дата на JavaScript