Výsledky 1 až 11 z 11

Téma: [MySQL & PHP] Stored Procedures => Ztrata spojeni s MySQL

Hybrid View

Předcházející příspěvek Předcházející příspěvek   Další příspěvek Další příspěvek
  1. #1

    Standardní [MySQL & PHP] Stored Procedures => Ztrata spojeni s MySQL

    Zdravte,

    tak jsem si rozbehl MySQL 5.0.22-community-nt, k tomu mam Apache 2.2.3 a PHP 5.2.1. A mam nasledujici problem:

    v databazi mam nekolik ulozenych procedur. Pomoci nastroje SQLyog je mam odladene a funguji ok.

    Pokud je zavolam v php, tak dalsi sql dotaz po zavolani ulozene procedure mi skonci hlasenim:

    2013 Lost connection to MySQL server during query

    Ovsem MySQL server nespadne ani ve spravci uloh neni videt ze by byl nejak zatizen...

    Co jsem googlil, tak je asi problem v php. Nasel jsem radu, abych volal po kazdem zavolani ulozene procedury funkci mysql_free_result na vysledek dotazu, ale to taky nepomaha.

    Mate s tim nekdo zkusenosti?
    GigaByte GA-M55plus-S3G --- A64 3200+ @ 24oo ~ 1,375V BOX --- 2x512 Geil 667 CL4 @ 980 CL5 --- WD2500KS --- Acer AL1721ms --- 1/1 MBit/s via WiFi
    Blog

    09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 aneb jeste ze ty "ochrany" programujou rozumny lidi :]

  2. #2
    Member
    Založen
    21.10.2002
    Bydliště
    Praha Petřiny
    Věk
    44
    Příspěvky
    309
    Vliv
    285

    Standardní Re: [MySQL & PHP] Stored Procedures => Ztrata spojeni s MySQL

    V PHP byly dve moznosti v connection myslim, nejake docasne a trvale, zkousel jsi obe moznosti ? Predpokladam, ze kdyz po zavolani procedury opet provedes mysql_connect, tak to jde, ale to asi neni systemove reseni pokazde volat nove spojeni, ze ? Nevim jak u mySQL, ale v Sybase to strasne kravilo, kdyz clovek nedal do $result = @sybase_query($query), kde $query bylo volani procedury ten zavinac, dely se pak fakt divne veci na outputu, pritom procedury byly take v poradku.
    Hope is the first step on the road to disappointment.
    Alcohol is the first step towards alcoholism.

  3. #3

    Standardní Re: [MySQL & PHP] Stored Procedures => Ztrata spojeni s MySQL

    Hod sem priklad procedury a priklad volani po te procedure...
    C2D Wolfheart stabilized...CoolingSys completed...Aurora 3D Black...full 120mm Wolfheart
    WinXP && Gentoo Powered Wolfheart http://img215.imageshack.us/my.php?i...pgentooqt2.jpg
    Intel Core2Duo E6300 1.86@3.2GHz cooled by Ninja Plus| Gigabyte DS4 | 1024MB Kingston 750@920MHz | sound | Gigabyte X1650Pro SilentPipe II | TEAC 40x & Toshiba DVD-RW | WD800JB 80GB | Logitech MX510 | Fortron 300W NP(PN) | MS Sidewinder Strategic Commander|Acer 1721hm
    C366 2@1,85V 32MB RAM, Slackware 9.1 router connected to Chello

  4. #4

    Standardní Re: [MySQL & PHP] Stored Procedures => Ztrata spojeni s MySQL

    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:
    1. 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.
    2. kdyz odstranim radek EXECUTE stmt; z te prvni procedury, tak mi vse funguje.
    3. 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.
    Naposledy upravil MEluZíNa; 11.02.2007 v 21:44.
    GigaByte GA-M55plus-S3G --- A64 3200+ @ 24oo ~ 1,375V BOX --- 2x512 Geil 667 CL4 @ 980 CL5 --- WD2500KS --- Acer AL1721ms --- 1/1 MBit/s via WiFi
    Blog

    09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 aneb jeste ze ty "ochrany" programujou rozumny lidi :]

  5. #5

    Standardní Re: [MySQL & PHP] Stored Procedures => Ztrata spojeni s MySQL

    Tak jsem to jeste zkusil otestovat pod linuxem
    MySQL: 5.0.32-Debian_3-log
    Verze MySQL klienta: 5.0.30
    PHP 5.2.0-8

    Po volani "Call getcompaniescount('1');" a naslednem zavolani jakehokoli dalsiho dotazu mi to pro zmenu hodi hlasku 2014 Commands out of sync; you can't run this command now

    Zkousel proceduru jeste zjednodusit
    Kód:
    CREATE DEFINER = `root`@`localhost` PROCEDURE `getcompaniescount` ( userid int ) DETERMINISTIC
    BEGIN 
        PREPARE xtab FROM 'SELECT "aaaa"';
        EXECUTE xtab;
        DEALLOCATE PREPARE xtab;
    END$$
    A porad to same Mohl by to pls nekdo ozkouset?
    Naposledy upravil MEluZíNa; 12.02.2007 v 12:17.
    GigaByte GA-M55plus-S3G --- A64 3200+ @ 24oo ~ 1,375V BOX --- 2x512 Geil 667 CL4 @ 980 CL5 --- WD2500KS --- Acer AL1721ms --- 1/1 MBit/s via WiFi
    Blog

    09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 aneb jeste ze ty "ochrany" programujou rozumny lidi :]

  6. #6

    Standardní Re: [MySQL & PHP] Stored Procedures => Ztrata spojeni s MySQL

    Tak uz jsem se to castecne vyresil.

    Kdyz na zacatku php skriptu zavolam jakoukoli ulozenou proceduru, ktera nepouziva EXECUTE, tak pak vse funguje.

    Zvlastni
    GigaByte GA-M55plus-S3G --- A64 3200+ @ 24oo ~ 1,375V BOX --- 2x512 Geil 667 CL4 @ 980 CL5 --- WD2500KS --- Acer AL1721ms --- 1/1 MBit/s via WiFi
    Blog

    09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 aneb jeste ze ty "ochrany" programujou rozumny lidi :]

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •