/ / Створення динамічної функції в класі для INSERT, DELETE і UPDATE - php, mysql, function, class, mysqli

Створення динамічної функції в класі для INSERT, DELETE та UPDATE - php, mysql, function, class, mysqli

Мені було цікаво, чи є хороший підхід до створення функцій в класі, щоб зробити його легким зробити вставки / видалення / оновлення запитів mysql.

Наприклад

Скажімо, у мене є таблиця, що містить 12 рядків, іЯ хочу зробити запит вставки з двома значеннями з іншого класу. Як буде виглядати функція вставки? Я хотів би, щоб ця функція працювала з будь-якою кількістю значень.

function addUser($email, $password) {

$values = array(
"email" => $email,
"password" => $password
);

$table = "users";
$query = $mysql->insert($values, $table);
}

function insert($values, $table) {
// what would this look like? (note: this function is within another class.
}

Я б зрештою хотів виконати запит з підготовленими виписками, наприклад:

if($stmt = $this->db->prepare($query)) {
$stmt->bind_param("ss", $email, $password);
$stmt->execute();

if($stmt->fetch()) {
$stmt->close();
return true;
}
}

Відповіді:

0 для відповіді № 1
class Mysql
{
public static function insert($values, $table)
{
if(empty($values) || empty($table))
{
// Noting to do
return "";
}

$list = array();

foreach($values as $k => $v)
$list[] = "`". $k ."` = "". $v .""";

$list = implode(",", $list);
$query = "INSERT INTO `". $table ."` SET " . $list;
return $query;
}
}

$values = array
(
"email" => "my email",
"password" => "my password"
);

$table = "users";
$query = Mysql::insert($values, $table);

echo $query;

Тут немає причин використовувати конструктор, тому що всі дані статичні. але якщо ви бажаєте, просто видаліть static від Вставити функції і ініціалізувати mysql так:

$mysql = new Mysql();
$mysql->insert($values, $table);