Ну вот и всё. Mysqli такой же хороший как и pdo


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Цитата (inpost @ 21.03.2015 - 14:28) |
Mysqli такой же хороший как и pdo |
class DB {
private static $mysqli;
public static function getInstance($host = null, $username = null, $passwd = null, $port = null, $soket = null) {
if(!self::$mysqli) {
self::$mysqli = new mysqli($host, $username, $passwd, $port, $soket);
}
return self::$mysqli;
}
public static function inserData($table, $data)
{
$self = self::$mysqli;
// Получаем ключи и значения из входного массива
$keys = array_keys($data);
$values = array_values($data);
// Подготавливаем шаблон с запросом в БД
$query = 'INSERT INTO %s (%s) VALUES (%s)';
// Подготавливаем определение полей
$columns = '%s';
$columns = sprintf($columns, implode(', ', $keys));
// Обрабатываем массив: очищаем и кладем в кавычки
// каждое значение в массиве и соеденяем в одну строку (через ',')
$dataValues = array_map(function($value) use ($self) {
$value= $self->escape_string($value);
return "'$value'";
}, $data);
$dataValues = implode(', ', $dataValues);
// Вставляем значения в шаблон запроса
$query = sprintf($query, $table, $columns, $dataValues);
// Возвращяем результат
return $self->query($query);
}
protected function __construct() {}
protected function __clone() {}
protected function __wakeup() {}
}
class Comments {
private $_db;
public function __construct($db) {
$this -> _db = $db;
}
public function insertComment($sql) {
$this -> resultat = $this -> _db -> query($sql) or die($mysqli ->error);
if($this -> resultat) {
echo "Ваш комментарий добавлен";
return $this -> resultat;
} else echo "Попробуйте еще разок!";
}
public function insert(array $data)
{
DB::inserData('comment', $data);
}
}
$comment = new Comments(DB::getInstance("127.0.0.1","Viktor","","blogs"));
$comment -> insert(array(
'id' => $com_id,
'name' => $author,
'email' => $email,
'text' => $text
));