Bueno el caso es que realize un script Singleton.php, para conexion a la base de datos, pero ahora me piden implementarlo en un sistema que habiamos hecho previamente, en dicho sistema tenia un script de conexion:
Código PHP:
Ver original<?php
function conectarDB(){
if (!$conexion){
}else{
return $conexion;
}
}
function desconectarDB(){
}
?>
Y solo hacia
Pero quiero saber como utilizar es te archivo:
Código PHP:
Ver original<?php
class conectarDB{
static private $instancia=NULL;
private $servidor="localhost";
private $user="root";
private $pass="";
private $bd="sgu";
private $link;
private $stmt;
private $array;
static $_instance;
private function __construct(){
$this->conectar();
}
public static function getInstance(){
if (!(self::$_instance instanceof self)){
self::$_instance=new self();
}
return self::$_instance;
}
private function conectar(){
}
public function ejecutar($sql){
return $this->stmt;
}
public function obtener_fila($stmt,$fila){
if ($fila==0){
}else{
}
}
public function lastID(){
}
}
?>
por ejemplo en este archivo:
Código PHP:
Ver original<?php
include("../php/modelo/Singleton.php");
$con=conectarDB::getInstance();
function get_user_porid ($id){
$sql="select *
from personas, usuarios
where
personas.idpersona=$id
";
return $registro;
}
}
if ($_GET['id']!=''){
$persona= get_user_porid($_GET['id']);
}
?>
<html>
<head>
<meta charset="UTF-8"/>
<title>Modificar usuario seleccionado</title>
</head>
<body>
<p align="center"><?php include("../php/header.php"); ?></p>
<form action="includes/modificoPersona.php" method="post" name="form">
<input type="hidden" name="id" value="<?php echo $persona->idpersona ?>" />
<table align="center" width="50%">
<tr>
<td>
<fieldset>
<legend>Relaize los cambios</legend>
<table width="50%" cellpadding="5" border="0">
<tr>
<td><p>Tipo de documento</p></td>
<td><input type="text" name="tipo_documento" value="<?php echo $persona->idTipoDocumento?>"/></td>
</tr>
<tr>
<td><p>Numero</p></td>
<td><input type="text" name="numero" value="<?php echo $persona->numeroDocumento?>"/></td>
</tr>
<tr>
<td><p>Apellido</p></td>
<td><input type="text" name="apellido" value="<?php echo $persona->apellido?>"/></td>
</tr>
<tr>
<td><p>Nombres</p></td>
<td><input type="text" name="nombres" value="<?php echo $persona->nombres?>"/></td>
</tr>
<td><p>Fecha de nacimiento</p></td>
<td><input type="text" name="fechanac" value="<?php echo $persona->fechaNacimiento?>"/></td>
<tr>
<td><p>Sexo</p></td>
<td><input type="text" name="sexo" value="<?php echo $persona->sexo?>"/></td>
</tr>
<tr>
<td><p>Celular</p></td>
<td><input type="text" name="Cel" value="<?php echo $persona->telefonoMovil?>"/></td>
</tr>
<tr>
<td><p>Telefono</p></td>
<td><input type="text" name="Tel" value="<?php echo $persona->telefono?>"/></td>
</tr>
<tr>
<td><p>email</p></td>
<td><input type="text" name="email" value="<?php echo $persona->email?>"/></td>
</tr>
<tr>
<td><p>Domicilio</p></td>
<td><input type="text" name="dom" value="<?php echo $persona->domicilio?>"/></td>
</tr>
<tr>
<td><p>Provincia</p></td>
<td><input type="text" name="prov" value="<?php echo $persona->provincia?>"/></td>
</tr>
<tr>
<td><p>Localidad</p></td>
<td><input type="text" name="loc" value="<?php echo $persona->localidad?>"/></td>
</tr>
<tr>
<td><p>Pais</p></td>
<td><input type="text" name="pais" value="<?php echo $persona->pais?>"/></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Datos de usuario</legend>
<table width="50%" cellpadding="5" border="0">
<tr>
<td><p>User</p></td>
<td><input type="text" name="user" value="<?php echo $persona->username?>"/></td>
</tr>
<tr>
<td><p>Pass</p></td>
<td><input type="text" name="pass" value="<?php echo $persona->password?>"/></td>
</tr>
<tr>
<td><p>Tipo de Usuario</p></td>
<td><input type="text" name="tipouser" value="<?php echo $persona->idTipoUsuario?>"/></td>
</tr>
<tr>
<td><input type="submit" name="bt_enviar" value="Listo"/></td>
</tr>
</table>
</fieldset>
</td>
</tr>
</table>
</form>
</body>
</html>
Lo que hice fue:
Código PHP:
Ver originalinclude("../php/modelo/Singleton.php");
$con=new conectarDB();
$con->getInstance();
Obtengo el siguiente error:
Fatal error: Call to private conectarDB::__construct() from invalid context
Probe hacer publica el metodo constructor, pero igual da otros errores, no sera que tengo que pasar toda la aplicacion a objetos?