Kdyz jsem sem chtel poslat priklady co a jak volam tak jsem zjistil, ze problem je v teto procedure:
Kód:
CREATE PROCEDURE `getcompaniescount`(userid int)
BEGIN
SET @t = companytable(userid);
SET @s = CONCAT('SELECT COUNT(company) AS maxcount FROM ',@t);
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END$$
Kód:
CREATE FUNCTION `companytable`(userid int) RETURNS varchar(50)
BEGIN
IF (canviewall(userid)='1') THEN
RETURN 'showallcompany';
ELSE
RETURN 'showcompany';
END IF;
END$$
Poznamky:
- showallcompany a showcompany jsou dva pohledy na tabulku companies, ve ktere mam ulozene firmy. Jeden vraci jen viditelne a druhy vsechny firmy z tabulky companies.
- kdyz odstranim radek EXECUTE stmt; z te prvni procedury, tak mi vse funguje.
- kdyz tuhle proceduru volam z SQLyog, tak zadny problem neni.
Jeste, z php to volam takto:
Kód:
mysql_connect("localhost","user","",65536);
mysql_select_db("databaze");
$res = mysql_query("CALL getcompaniescount('1');");
$row = mysql_fetch_object($res);
mysql_free_result($res);
Zkusim o tom jeste neco zatim vygooglit.