Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Saberuneko

#231
Lenguajes:
PHP, PL/SQL
Problema:
No consigo que se ejecute ningún procedimiento PL/SQL almacenado desde mi script PHP.
Códigos:

Tablas:
Código (sql) [Seleccionar]
/*GOODS TABLE, WILL CONTAIN ALL GOODS*/
CREATE TABLE GOODS(
ID INT(3) AUTO_INCREMENT,
NAME CHAR(20) UNIQUE,
IMGFILE CHAR(20),
L_PRICE INT(4),
S_PRICE INT(4),
H_PRICE INT(4),
C_PRICE INT(4),
PRIMARY KEY(ID));

/*TRADERS TABLE, WILL CONTAIN ALL USERS AND THEIR DATA*/
CREATE TABLE TRADERS(
ID INT(3) AUTO_INCREMENT,
USERNAME CHAR(20) NOT NULL,
PASSWORD CHAR(20) NOT NULL,
MAIL CHAR(40) NOT NULL,
CREDITS CHAR(20) NOT NULL,
PRIMARY KEY(ID));

/*STOCKS TABLE, WILL CONTAIN EACH USER'S (TRADER) STOCK*/
CREATE TABLE STOCKS(
GOOD_ID INT(3),
TRADER_ID INT(3),
AMMOUNT INT(10),
AVG_BUY INT(4),
FOREIGN KEY(GOOD_ID)
REFERENCES GOODS(ID)
ON DELETE CASCADE,
FOREIGN KEY(TRADER_ID)
REFERENCES TRADERS(ID)
ON DELETE CASCADE);


Procedimiento Almacenado a llamar:
Código (sql) [Seleccionar]
/*THIS PROCEDURE ALLOWS THE TRADERS TO BUY STOCKS*/
CREATE PROCEDURE BUY_STOCK(P_GOOD INT,P_TRADER INT,P_AMMOUNT INT)
BEGIN
DECLARE V_PRICE, V_COST INT;
SELECT C_PRICE INTO V_PRICE
FROM GOODS
WHERE ID = P_GOOD;

SET V_COST = V_PRICE*P_AMMOUNT;

IF HAS_CREDITS(P_TRADER,V_COST) THEN
IF HAS_STOCK(P_GOOD,P_TRADER) THEN
UPDATE STOCKS
SET AMMOUNT = AMMOUNT + P_AMMOUNT
WHERE GOOD_ID = P_GOOD
AND TRADER_ID = P_TRADER;
UPDATE STOCKS
SET AVG_BUY = ((AVG_BUY*(AMMOUNT-P_AMMOUNT))+(V_PRICE*P_AMMOUNT))/AMMOUNT
WHERE GOOD_ID = P_GOOD
AND TRADER_ID = P_TRADER;
ELSE
INSERT INTO STOCKS
VALUES(P_GOOD,P_TRADER,P_AMMOUNT,V_PRICE);
END IF;
UPDATE TRADERS
SET CREDITS = CREDITS - V_COST
WHERE ID = P_TRADER;
END IF;
END;


Código PHP que trata de llamar al procedimiento almacenado:
Código (php) [Seleccionar]
<?php
session_name('trademaster');
session_start();

if($_POST['transaction'] = "Buy")
{

$good $_POST['goodid'];
$id $_SESSION['id'];
$ammount $_SESSION['ammount'];
$db = new PDO("mysql:host=localhost;dbname=trademaster"'trader''********');

$x $db->prepare('CALL BUY_STOCK(:good, :trader, :ammount)');

$x->bindValue(':good'$goodPDO::PARAM_INT);
$x->bindValue(':trader'$idPDO::PARAM_INT);
$x->bindValue(':ammount'$ammountPDO::PARAM_INT);

$x->execute();

unset($db);

header("location:stocks.php");
exit();
}
?>


Error:
PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1370 execute command denied to user 'trader'@'localhost' for routine 'trademaster.BUY_STOCK'

Observaciones:
El usuario 'trader'@'localhost' que interactúa con la base de datos tiene los permisos de USAGE, SELECT, INSERT, UPDATE, DELETE y EXECUTE sobre todas las tablas de la base de datos (trademaster.*).

Queries hacia la base de datos con SELECT, INSERT y UPDATE funcionan.

El procedimiento almacenado funciona correctamente, ya lo he probado localmente desde una consola MySQL.

La password del objeto PDO la quité por razones evidentes.

Los valores POST y SESSION se recogen adecuadamente, lo he comprobado.
#232
Foro Libre / Re: 4chan Risk - Partida
18 Marzo 2014, 22:09 PM
{daryo.....} - {2880} - {Territorios: 25}
{ABDERRAMAH} - {0245} - {Territorios: 10}
{crazykenny} - {7377} - {Territorios: 15}
{0xdani....} - {9175} - {Territorios: 10}
{engelx....} - {6808} - {Territorios: 15}
{@drvy.....} - {5024} - {Territorios: 10}
{Saberuneko} - {1473} - {Territorios: 5}


--

Estado diplomático actual:
daryo~Saberuneko - Pacto de no agresión:
· Saberuneko no toca Sudamérica.
· daryo no toca Australia.

@drvy~ABDERRAMAH - Pacto de no agresión:
· @drvy no toca la península arábiga.
· ABDERRAMAH no toca África.
· ABDERRAMAH puede invadir Egipto.

ABDERRAMAH~Saberuneko - Pacto de protección:
Ambos mantendrán una defensa mutua y recíproca ante las amenazas.

engelx~daryo - Pacto de no agresión:
engelx no pasa a México
daryo no sube a EEUU

--
Daryo... te salió una tirada de 25 y las islas son menos, quedé por la zona y te avancé por México. (Si no me dejáis amplitud bastante, tengo que improvisar :( ).
--

http://s26.postimg.org/lf3ypxjg7/ehn_mundo.png
#233
Foro Libre / Re: 4chan Risk - Partida
18 Marzo 2014, 02:45 AM
Drvy, actualizo en 20 horas.
#234
Juegos y Consolas / Re: Duda sobre Space Clash
17 Marzo 2014, 16:58 PM
¡Gracias por la respuesta! Haré la prueba.

Lo había conseguido poner a funcionar hace un año haciendo algo parecido, pero tenía ciertos gráficos que se seguían distorsionando... Cuando llegue a casa le hago una prueba.

Un saludo.  :)
#235
@engelx: Debo buscar a ver si encuentro un vídeo que grabé hace unos 4-5 años de las fuerzas armadas haciendo una exibición en Gijón.

Los frames de mi cámara y la frecuencia de rotación del rotor del helicóptero eran similares, y las aspas no estaban difuminadas. Se veía movimiento, pero era ridículamente lento. (visualmente)
#236
Cita de: EvilGoblin en 13 Enero 2009, 17:53 PMhay q avisarle a los tecnicos de helicopteros que se equivocaron y que pusieron un motor de 1400 caballos de fuerza en unas aspas que no hacen falta xDDD


¿Dónde está el rotor de cola aquí?
No es estrictamente necesario.
#237
Foro Libre / Re: 4chan Risk - Partida
15 Marzo 2014, 02:29 AM
Invado territorios de 0xDani en el frente norte.
#238
Foro Libre / Re: 4chan Risk - Partida
15 Marzo 2014, 02:16 AM
{daryo.....} - {1931} - {Territorios: 5}
{ABDERRAMAH} - {8710} - {Territorios: 25}
{crazykenny} - {5773} - {Territorios: 5}
{0xdani....} - {2244} - {Territorios: 10}
{engelx....} - {0481} - {Territorios: 5}
{@drvy.....} - {8837} - {Territorios: 15}
{Saberuneko} - {3346} - {Territorios: 10}


--

Estado diplomático actual:
daryo~Saberuneko - Pacto de no agresión:
· Saberuneko no toca Sudamérica.
· daryo no toca Australia.

@drvy~ABDERRAMAH - Pacto de no agresión:
· @drvy no toca la península arábiga.
· ABDERRAMAH no toca África.
· ABDERRAMAH puede invadir Egipto.

ABDERRAMAH~Saberuneko - Pacto de protección:
Ambos mantendrán una defensa mutua y recíproca ante las amenazas.

--

Incidencias:

daryo no ha declarado movimiento en 7 días.
Procedo a repetir la orden del turno anterior.

¡ALGÚN MODERADOR, SOCORRO!
Se me ha borrado accidentalmente el post "msg1923735" en la página 8. Le di a editar para usarlo como plantilla, y sin querer lo borré. ¿Se le puede hacer rollback?
(Esta clase de errores me ocurren cuando me sobrepasan el cansancio, la ansiedad y el estrés... y detesto cuando los cometo). ¡Malditos exámenes!

--

http://s26.postimg.org/4qabzdmt3/ehn_mundo.png
#239
Electrónica / Re: Cambiar capacitadores...
13 Marzo 2014, 20:50 PM
...y por eso hay que usar EPIs.

(Equipos de Protección Individual). (Guantes, casco, protección ocular, etc...)
#240
Seguridad / Re: me recomiendan un av¡¡¡
13 Marzo 2014, 20:47 PM
Que nevegue solo para lo necesario (¿entrar al facebook o twitter es necesario? ¿ver peliculas online es necesario? etc.) <-- Ocio tengo, pero con precaución.
Que no descargue pirateria <-- Cumplo esto
Que no entre a paginas inseguras <-- Cumplo esto normalmente
Que no introduzca usb de otros <-- Cumplo esto SIEMPRE
Que cuando se mueve de su lugar para ir al baño, por ejemplo, desconecte el internet  <-- Bloqueo terminal para que nadie toque localmente.
Si el PC no lo estoy usando y no está haciendo nada en red, lo desconecto, deshabilitando la interfaz pertinente.
Si el PC no está haciendo nada en absoluto, lo pongo en suspensión o lo apago.

Citarsi no quieres embarazar a tu novia no te la co...no la penetres.
Siempre pensé que la función del sexo es la de reproducción de una especie. o.o