@4sadly

Как правильно перебрать свойства?

Есть функция получения свойств объекта со строки через pdo:
function dispense($t){
        $r = $this->query('DESCRIBE '.$t)->fetch();
        $r->tablename = $t;
        return $r;
    }

и функция вставки объекта:
function insert($o){
        $t = $o->tablename;
        unset($o->tablename);
        $keys = null;
        $values = null;
        foreach ($o as $k => $v){
            $keys .= $k.', ';
            $values .= $v.', ';
        }
        $this->query('INSERT INTO '.$t.' ('.$keys.') VALUES('.$values.')');
    }

Как мне правильнее это реализовать? чтобы не было лишних запятых и строки оборачивались в кавычки?
  • Вопрос задан
  • 95 просмотров
Решения вопроса 2
t-alexashka
@t-alexashka
Сразу пишу legacy код
<?php

function insert($o)
{
	$t = $o->tablename;
	unset($o->tablename);
	$keys = array();
	$values = array();
	foreach ($o as $k => $v) {
		$keys[] = $k;
		$values[] = is_string($v) ? "'{$v}'" : $v;
	}
	$keys = implode(',', $keys);
	$values = implode(',', $values);
	$this->query("INSERT INTO {$t} ({$keys}) VALUES({$values})");
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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