/ / Créer une fonction dynamique dans une classe pour INSERT, DELETE et UPDATE - php, mysql, fonction, classe, mysqli

Création d'une fonction dynamique dans une classe pour INSERT, DELETE et UPDATE - php, mysql, fonction, classe, mysqli

Je me demandais s'il existait une bonne approche pour créer des fonctions dans une classe afin de faciliter la création de requêtes mysql d'insertion / suppression / mise à jour.

Par exemple

Disons que j'ai un tableau contenant 12 lignes, etJe veux faire une requête d'insertion avec deux valeurs d'une autre classe. A quoi ressemblerait la fonction d'insertion? Je voudrais que cette fonction fonctionne avec n'importe quel nombre de valeurs.

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.
}

Je voudrais éventuellement exécuter la requête avec des instructions préparées, quelque chose comme:

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

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

Réponses:

0 pour la réponse № 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;

Il n'y a aucune raison d'utiliser le constructeur ici car toutes les données sont statiques. mais si vous le souhaitez, retirez simplement le static du insérer une fonction et initialisez mysql comme ceci:

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