//Версия пробная 1.0
class MYSQL{
private $localhost = 'localhost'; //путь
private $login = 'root'; //логин
private $password = ''; //пароль
private $dbname = 'dis'; //имя бд
private $mysqli;
public function __construct() {
$this->mysqli = mysqli_connect($this->localhost, $this->login, $this->password, $this->dbname);
if (mysqli_connect_errno($mysqli)) {
echo "Ошибка, нет подключения к MySQL: " . mysqli_connect_error();
}
$this->mysqli->set_charset("utf8");
}
private function type( $data, $type ){
// Проверяем данные на тип int
if (($type == 'int') and !is_int($data)) {
return 'Ошибка. Значение '.$data.' не является числовым типом.';
}
// Проверяем данные на тип numeric
if (($type == 'num') and !is_numeric($data)) {
return 'Ошибка. Значение '.$data.' не является числовой строкой.';
}
// Проверяем данные на тип float
if (($type == 'fl') and !is_float($data)) {
return 'Ошибка. Значение '.$data.' не является числом с плавающей точкой.';
}
// Проверяем данные на тип null
if (($type == 'null') and !is_null($data)) {
return 'Ошибка. Значение '.$data.' не является типом NULL.';
}
// Проверяем данные на тип string
if (($type == 'st') and !is_string($data)) {
return 'Ошибка. Значение '.$data.' не является строковым типом.';
}
//можно добавить еще кучу типов.
}
// Добавляем запись в базу данных, с помощью массива или json
public function add( $data, $type = null ) {
if ( $type == 'json') { $data = json_decode($data); }
foreach( $data as $key => $val ) {
if ($key !== 'table') {
$name = explode(':', $key);
if (!empty($name[1])) {
$hash = $this->type($val, $name[1]);
if ( $hash ) {
return $hash;
}
}
$names .= '`'.$this->mysqli->real_escape_string($name[0]).'`, ';
$values .= '`'.$this->mysqli->real_escape_string($val).'`, ';
} else {
$table = mysql_escape_string($val);
}
}
$names = rtrim($names, ', ');
$values = rtrim($values, ', ');
$this->mysqli->query('INSERT INTO `'.$table.'`('.$names.') VALUES ('.$values.')');
}
}
Заполняем данные.
$array = array ( 'table'=>'list', 'id:null'=>NULL, 'data_id:int'=>1, 'data:str'=>'DATA' );
Подключаем класс.
$data = new MYSQL();
Смотрим результат.
echo $data->add($array);
echo $data->add(json_encode($array), 'json');
echo $data->add('{"table":"list","id:null":null,"data_id:int":1,"data:str":"DATA"}', 'json');
Добавил в класс только метод
add(), так как жду от вас толерантной критики, что бы в следующих методах уже не повторять ошибок.