/ / Creando una función dinámica dentro de una clase para INSERT, DELETE y UPDATE - php, mysql, function, class, mysqli

Creación de funciones dinámicas dentro de una clase para INSERT, DELETE y UPDATE - php, mysql, function, class, mysqli

Me preguntaba si existe un buen enfoque para crear funciones dentro de una clase para facilitar la tarea de insertar / eliminar / actualizar mysql.

Por ejemplo

Digamos que tengo una tabla que contiene 12 filas, yQuiero hacer una consulta de inserción con dos valores dentro de otra clase. ¿Cómo se vería la función de inserción? Me gustaría que esta función trabaje con cualquier número de valores.

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

Finalmente me gustaría ejecutar la consulta con sentencias preparadas, algo como:

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

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

Respuestas

0 para la respuesta № 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;

No hay razón para usar el constructor aquí porque todos los datos son estáticos. Pero si así lo deseas, solo quita la static desde el insertar función e inicializa mysql así:

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