este es el codigo que faltaba publicar, el que genera el sql.. en fin.. a mi entender no hay error. no se por que se puede comportar asi el codigo solo con el valor 1
Código PHP:
Ver originalclass Sql
{
private $_where = array (); private $_order = array (); private $_select = array (); private $_from = array (); private $_funcion;
private $_values = array();
public function getSQL()
{
return $this->_funcion;
}
public function addTabla ($tabla)
{
$this -> _from[]=$tabla;
}
public function addSelect ($select)
{
$this -> _select []=$select;
}
public function addWhere ($where)
{
$this -> _where []= $where;
}
public function addOrder ($order)
{
$this -> _order []= $order;
}
public function addFuncion ($funcion)
{
$this -> _funcion = $funcion;
}
public function addValue($value)
{
$this->_values[] = $value;
}
private function _generar()
{
$select_format = "SELECT %s FROM %s WHERE %s ORDER BY %s DESC";
$select_format_sw = "SELECT %s FROM %s ORDER BY %s DESC";
$select_format_g = "SELECT %s FROM %s WHERE %s ORDER BY %s DESC";
$insert_format = "INSERT INTO %s (%s) VALUES ('%s')";
$delete_format = "DELETE FROM %s WHERE %s";
$update_format = "UPDATE %s SET %s WHERE %s";
switch ($funcion) {
case 'select_sw':
return sprintf($select_format_sw, $select, $from, $order); break;
case 'select':
return sprintf($select_format, $select, $from, $where, $order); break;
case 'insert':
return sprintf($insert_format, $table, $select, $values); break;
case 'delete':
return sprintf($delete_format, $from, $where); break;
case 'update':
return sprintf($update_format, $table, $select, $where); break;
case 'select_g':
return sprintf($select_format_g, $select, $table, $where, $order); break;
default :
return sprintf($select_format, '*', $from, $where); break;
}
}
public function __toString()
{
return $this->_generar();
}
}