niente da fare...
ho provato in questi due modi ma mi restituiscono sempre
no data - zero rows fetched, selected or processed
Codice PHP:
CREATE PROCEDURE test.HASH(IN len INT, IN counter INT, OUT param CHAR(24))
READS SQL DATA
COMMENT ''
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE h VARCHAR(24);
DECLARE sql1 CURSOR FOR
SELECT SUBSTRING(MD5(RAND()), -24) AS h;
CREATE TEMPORARY TABLE IF NOT EXISTS test.`hashes` (
`id` int(10) NOT NULL auto_increment,
`hash` varchar(24) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `hash` (`hash`)
);
OPEN sql1;
hash_loop: LOOP
FETCH sql1 INTO h;
INSERT IGNORE INTO test.hashes ( hash ) VALUES( h );
SET i = i+1;
IF i=counter THEN
LEAVE hash_loop;
END IF;
END LOOP hash_loop;
CLOSE sql1;
SET param = (SELECT hash FROM test.hashes);
DROP TABLE test.hashes;
END;
Codice PHP:
CREATE PROCEDURE test.HASH(IN len INT, IN counter INT, OUT param CHAR(24))
READS SQL DATA
COMMENT ''
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE h VARCHAR(24);
DECLARE sql1 CURSOR FOR
SELECT SUBSTRING(MD5(RAND()), -24) AS h;
CREATE TEMPORARY TABLE IF NOT EXISTS test.`hashes` (
`id` int(10) NOT NULL auto_increment,
`hash` varchar(24) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `hash` (`hash`)
);
OPEN sql1;
WHILE( i < counter ) DO
FETCH sql1 INTO h;
INSERT IGNORE INTO test.hashes ( hash ) VALUES( h );
SET i = i+1;
END WHILE;
CLOSE sql1;
SET param = (SELECT hash FROM test.hashes);
DROP TABLE test.hashes;
END;
chiamata:
Codice PHP:
CALL HASH(24,3,@a);
select @a;