Buenas,
Tras varias pruebas empiracas he podido comprobar que el problema es del Stored Procedure, ya que con consultas normales si que funciona.
Código PHP:
Ver original<?php
require_once('BD/DB_config_reader.class.php');
require_once('BD/MyPDO.class.php');
require_once('BD/Registry.class.php');
$db_master = dbFactory::create('BD/bd_master.ini');
//$query = "SELECT pais_id, pais FROM tbl_paises";
//$query = "INSERT INTO tbl_paises (pais) VALUES ('maravillas')";
$query = "CALL sp_nuevoUsuario ('dani999','12345','asfasfs','Juanito','[email protected]','1985-2-3','H',70,'129.65.54.61')"; $comando = $db_master->prepare($query);
$comando->execute();
echo $comando->rowCount();
?>
Os muestro el SP, por si me podéis decir si es culpa de algo del código
Código SQL:
Ver originalDELIMITER $$
DROP PROCEDURE IF EXISTS `mentes_estrategas`.`sp_nuevoUsuario` $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_nuevoUsuario`(
IN vuser_login VARCHAR(25),
IN vuser_pass VARCHAR(30),
IN vuser_activation_key VARCHAR(40),
IN vuser_name VARCHAR(30),
IN vuser_mail VARCHAR(45),
IN vuser_birthday DATE,
IN vuser_sexo CHAR(1),
IN vuser_pais SMALLINT,
IN vip_registro VARCHAR(15))
BEGIN
START TRANSACTION;
INSERT INTO tbl_user(
user_login,
user_pass,
user_activation_key)
VALUES(
vuser_login,
vuser_pass,
vuser_activation_key);
INSERT INTO tbl_user_personal(
user_id,
user_name,
user_mail,
user_birthday,
user_sexo,
user_pais)
VALUES (
(SELECT LAST_INSERT_ID()),
vuser_name,
vuser_mail,
vuser_birthday,
vuser_sexo,
vuser_pais);
INSERT INTO tbl_registro (
user_id,
fecha_registro,
ip_registro)
VALUES (
(SELECT LAST_INSERT_ID()),
NOW(),
vip_registro);
COMMIT;
END $$
DELIMITER ;
¿Alguien puede probar si con la clase PDO al ejecutar un SP luego cuando hace un rowCount() si le funciona bien, y aparece un número > 0?
Ya no se que más mirar :S
Muchas gracias de antemano