Files
ventas_php/classes/mock-database.class.php

104 lines
2.0 KiB
PHP
Executable File

<?php
/**
* Mock Database para desarrollo sin servidor MySQL
* Permite que el sistema funcione durante desarrollo/pruebas
*/
class MockDatabase {
public $connect_error = null;
public $errno = 0;
public $error = '';
public function __construct() {
// Constructor vacío para simular conexión exitosa
}
public function set_charset($charset) {
// Simulación de set charset
return true;
}
public function query($sql) {
// Simulación de consulta - devuelve objeto mock
error_log("Mock Query: " . $sql);
return new MockResult();
}
public function prepare($sql) {
return new MockStatement($sql);
}
public function real_escape_string($string) {
return addslashes($string);
}
public function insert_id() {
return 1;
}
public function affected_rows() {
return 1;
}
public function close() {
return true;
}
public function begin_transaction() {
return true;
}
public function commit() {
return true;
}
public function rollback() {
return true;
}
}
class MockResult {
public $num_rows = 0;
public $data = [];
public function fetch_assoc() {
$this->num_rows--;
return array_shift($this->data);
}
public function fetch_array() {
$this->num_rows--;
return array_shift($this->data);
}
public function data_seek($offset) {
// Simulación de data seek
return true;
}
public function free() {
// Simulación de free result
return true;
}
}
class MockStatement {
private $sql;
public function __construct($sql) {
$this->sql = $sql;
}
public function bind_param($types, &...$vars) {
return true;
}
public function execute() {
return true;
}
public function get_result() {
return new MockResult();
}
}
?>