No se bien a que te referís, porque el error ya lo describi varias veces, creo que me estas preguntando por el momento en que guardo y obtengo los datos... aca va.
Lo muestro para el caso de ABM de Clientes.
En el script para guardar:
Código PHP:
if(!empty($_POST['name'])){
$client->setName($_POST['name']);
La conexión a la base de datos (PDO):
Código PHP:
static public function getConnection() {
require(HOME.'/dbconfig.php');
try {
$dbh = new PDO("mysql:dbname=$db;host=$host", "$user", "$pass");
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbh->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");
return $dbh;
}
catch(PDOException $e)
{
throw new Exception("Error al conectarse a la base de datos:<br/>" . $e->getMessage());
}
}
Para guardar el cliente:
Código PHP:
$dbh = MySQLConnect::getConnection();
if($c->getId() == -1){
$stmt = $dbh->prepare("INSERT INTO clients
(
id,
name,
phone,
email,
address,
rut,
razon_social,
active
)
VALUES
(
:client_id,
:name,
:phone,
:email,
:address,
:rut,
:razon_social,
:active
)"
);
$oid = OIDManager::getInstance()->getClientID();
$stmt->bindParam(':client_id', $oid);
}
else{
$stmt = $dbh->prepare("UPDATE clients
SET
name = :name,
phone = :phone,
email = :email,
address = :address,
rut = :rut,
razon_social = :razon_social,
active = :active
WHERE id = :client_id"
);
$stmt->bindParam(':client_id', $c->getId());
}
$stmt->bindParam(':name', $c->getName());
$stmt->bindParam(':phone', $c->getPhone());
$stmt->bindParam(':email', $c->getEmail());
$stmt->bindParam(':address', $c->getAddress());
$stmt->bindParam(':rut', $c->getRut());
$stmt->bindParam(':active', $c->getActive());
$stmt->bindParam(':razon_social', $c->getRazonSocial());
try
{
$stmt->execute();
$dbh = null;
}
catch(PDOException $ex){
throw new Exception($ex->getMessage());
}
}
public function loadClient(Client &$c){
$link = MySQLConnect::getConnection();
$query = "";
if($c->getId()!=-1){
$query = "SELECT id, name, phone, email, address, rut, razon_social, active
FROM clients
WHERE id = ".$c->getId()." LIMIT 1";
}
else{
$query = "SELECT id, name, password, fullname, email, authority
FROM users
WHERE username = '".$c->getUsername()."' LIMIT 1";
}
try{
$stmt = $link->query($query);
$row = $stmt->fetch(PDO::FETCH_OBJ);
$c->setId($row->id);
$c->setName($row->name);
$c->setPhone($row->phone);
$c->setEmail($row->email);
$c->setAddress($row->address);
$c->setRut($row->rut);
$c->setRazonSocial($row->razon_social);
$c->setActive($row->active);
$link = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
Y... bueno, para mostrarlo hago un load() al cliente, que basicamente hace lo mismo, pero carga los valores, sin aplicarle ningun tipo de funcion.
Luego $client->getName().
Como decía, desde la web, y desde el gestor de BD, es consistente. Es decir, todos los datos que modifico y doy de alta en la web, se ven ok en la web. El tema es que si ingreso "mañana" y lo voy a ver en phpmyadmin, se ve mal (y viceversa). Perdón por ser repetitivo.
Si no era especificamente lo que preguntaste, decime que estoy atento.