Hola a tod@s;
Tengo una clase donde llamo a una sencilla función para efectuar un select (los datos en la tabla están inicializados y los datos que llegan a la función son correctos.
El select que quiero hacer es :
Código PHP:
$sql = "SELECT * FROM `laser` WHERE `numero` =? AND `jugador` ='?' LIMIT 0 , 30";
El código de la clase es:
Código PHP:
class Application_Model_Laser extends Zend_Db_Table_Abstract
{
protected $_name = 'laser';
public function getLaserNivel($numero, $jugador)
{
//$sql = "SELECT * FROM `laser` WHERE `numero` =? AND `jugador` ='?' LIMIT 0 , 30";
//$row = $this->_db->fetchAll($sql,array($numero,$jugador));
//$row = $this->fetchRow(array('numero = '. $numero,'jugador = '.$jugador));
//return $row['nivel'];
$select = $this->select()
->from(array('l' => 'laser'))
->where('l.numero= '.(int)$numero)
->where('l.jugador= '.$jugador);
$select->setIntegrityCheck(false);
$s = $select->query()->fetchAll();
return (int)$s->nivel;
}
function updateLaserNivel($numero, $jugador, $valor)
{
$sql = "UPDATE laser
SET nivel = ?
WHERE numero = ? AND jugador = ?";
$row = $this->_db->update($sql,array((int)$valor,(int)$numero,$jugador));
}
}
Cuando hago servir la función select me da el siguiente error :
Cita: An error occurred
Application error
Exception information:
Message: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
Stack trace:
#0 C:\xampp\htdocs\joc1\library\Zend\Db\Statement.php (300): Zend_Db_Statement_Pdo->_execute(Array)
#1 C:\xampp\htdocs\joc1\library\Zend\Db\Adapter\Abstr act.php(479): Zend_Db_Statement->execute(Array)
#2 C:\xampp\htdocs\joc1\library\Zend\Db\Adapter\Pdo\A bstract.php(238): Zend_Db_Adapter_Abstract->query(Object(Zend_Db_Table_Select), Array)
#3 C:\xampp\htdocs\joc1\library\Zend\Db\Select.php(68 6): Zend_Db_Adapter_Pdo_Abstract->query(Object(Zend_Db_Table_Select))
#4 C:\xampp\htdocs\joc1\application\models\Laser.php( 18): Zend_Db_Select->query()
#5 C:\xampp\htdocs\joc1\application\controllers\JocCo ntroller.php(80): Application_Model_Laser->getLaserNivel(1, 'mod')
#6 C:\xampp\htdocs\joc1\library\Zend\Controller\Actio n.php(516): JocController->investAction()
#7 C:\xampp\htdocs\joc1\library\Zend\Controller\Dispa tcher\Standard.php(295): Zend_Controller_Action->dispatch('investAction')
#8 C:\xampp\htdocs\joc1\library\Zend\Controller\Front .php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#9 C:\xampp\htdocs\joc1\library\Zend\Application\Boot strap\Bootstrap.php(97): Zend_Controller_Front->dispatch()
#10 C:\xampp\htdocs\joc1\library\Zend\Application.php( 366): Zend_Application_Bootstrap_Bootstrap->run()
#11 C:\xampp\htdocs\joc1\public\index.php(26): Zend_Application->run()
#12 {main}
Request Parameters:
array (
'controller' => 'joc',
'action' => 'invest',
'module' => 'default',
)
Las preguntas son estas :
He provado hacer el select de muchas maneras diferentes y siempre me sale un error.
Como lo hago correctamente?
Como cojo el resultado del select correctamente para el return?
Como hago correctamente el update de la misma variable de la tabla?
PD: En las tablas donde tengo una PK de un solo valor no tengo problemas.
Espero que me puedan ayudar.
Gracias por adelantado.