Neden bir mysql fonksiyonu ile yapmıyorsunuz
DELIMITER $$
DROP FUNCTION IF EXISTS `getDepth` $$
CREATE FUNCTION `getDepth` (kategori_id INT) RETURNS int
BEGIN
DECLARE depth INT;
SET depth=1;
WHILE kategori_id > 0 DO
SELECT IFNULL(ustkat,-1)
INTO kategori_id
FROM ( SELECT ustkat FROM kategoriler WHERE id = kategori_id) t;
IF kategori_id > 0 THEN
SET depth = depth + 1;
END IF;
END WHILE;
RETURN depth;
END $$
DELIMITER ;