He estado trabajando en una clase de php usando mysqli para poder acceder a una base de datos. Investigando encontré una bastante completa que me permite hacer consultas e inserciones. El problema radica en que cuando hago la inserción, no se como puedo hacer para que esta me verifique si el registro que introduje anteriormente ya existe.
La clase es la siguiente:
Código PHP:
Ver original
class DBConnector { protected static $conn; protected static $stmt; protected static $reflection; protected static $sql; protected static $data; public static $results; protected static function conectar() { self::$conn = new mysqli(DBserver, DBuser, DBpassword, DBname); } protected static function preparar() { self::$stmt = self::$conn->prepare(self::$sql); self::$reflection = new ReflectionClass('mysqli_stmt'); } protected static function set_params() { $method = self::$reflection->getMethod('bind_param'); $method->invokeArgs(self::$stmt, self::$data); } protected static function get_data($fields) { $method = self::$reflection->getMethod('bind_result'); $method->invokeArgs(self::$stmt, $fields); while(self::$stmt->fetch()) { } } protected static function finalizar() { self::$stmt->close(); self::$conn->close(); } public static function ejecutar($sql, $data, $fields=False) { self::$sql = $sql; self::$data = $data; self::conectar(); self::preparar(); self::set_params(); self::$stmt->execute(); if($fields) { self::get_data($fields); } else { return self::$stmt->insert_id; } } self::finalizar(); } }
Y en el archivo de prueba tengo el siguiente comando:
Código PHP:
Ver original
$nickname = 'ppepe'; $name = 'Pedro Perez'; $permissions = 0; $sql = "INSERT INTO user (nickname, password, name, email, permissions) VALUES (?, ?, ?, ?,?)"; "{$nickname}", "{$password}", "{$name}", "{$email}","{$permissions}"); $insert_id = DBConnector::ejecutar($sql, $data); echo $insert_id;
La cosa es que quiero que la comprobación sea en la clase y no fuera en el archivo.
Agradezco quien pueda ayudarme