Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: tworzenie procedur skladowanych MySQL z poziomu PHP
Forum PHP.pl > Forum > PHP
Berkovits
Dopiero zaczynam przygode z procedurami skladowanymi wMySQL-u. Komunikuje sie z baza danych przez PHP. Probowalem przez PHPMyAdmina, ale tam
nic sie nei udawalo. 
Gdizes w internecie znalazlem informacje, ze PMA nie radzi sobie z procedurami. Wobec tego sprobowalem przez wlasnorecznie napisany program w PHP (biblioteka PDO).

Gdy wykonam następujący kod:
  1. <?php
  2. $stmt = $pdo -> query(
  3. CREATE PROCEDURE p3() SELECT id FROM student
  4. ');
  5. ?>

to rzucany jest wyjątek: getMessage='SQLSTATE[HY000]: General error'.
Gdy jednak jeszcze raz uruchamiam ten sam skrypt, pojawia się wyjątek z trescia: SQLSTATE[HY000]: General error: 1304 PROCEDURE p3 already exists,
co by znaczyło, ze jednak stworzyl ta procedure.
Gdy tak utworzona procedure chce uruchomic, nie pojawia sie blad - wszystko jest OK. Wobec tego skąd ten błąd? Taki sam sposob tworzenie procedury poprzez Command Line Client nie zwraca bledu.

Spotkaliscie sie juz z czyms takim? Jak to obejsc?

SHOW GRANTS zwraca:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '***' WITH GRANT OPTION
franki01
Na googlach poszukalem i znalazlem takie cos, ze w MySQL, pobierane pola w procedurach powinny byc typu char albo varchar. Nie mam pojecia dlaczego i nie sprawdzalem, ale niby wtedy nie zwraca bledu.. Jak cos nie dziala, to poszukaj na google.com, bo tam troche mozna sie o tym naczytac..
Berkovits
Dzieki, sprawdze to.
A z tym Google, to chciales mnie chyba zawstydzic wstydnis.gif .
Nie sadzilem, ze przyjda takie czasy... snitch.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.