[Kohana]Problem z wywołaniem procedury składowanej mysql |
[Kohana]Problem z wywołaniem procedury składowanej mysql |
3.03.2010, 19:15:50
Post
#1
|
|
Grupa: Zarejestrowani Postów: 654 Pomógł: 121 Dołączył: 27.10.2007 Skąd: Poznań, Łódź Ostrzeżenie: (0%) |
Hej
Wydaje mi się, że rzuciłem się z motyką na słońce, ale chciałem postępować tak jak zawsze robię przy bazach MSSQL i C#... Zachciało mi się w aplikacji korzystać z procedur składowanych w bazie mysql. Procedury te pobierają odpowiednie parametry po czym zwracają wynik działania - I tutaj pojawia się problem Mam coś takiego:
I to działa jeśli wywołuję z poziomu mySQL'a. Ponieważ aplikacja powstaje w oparciu o framework Kohana korzystam z klasy Database i metody query. Robię to tak:
Oczywiście w zmiennych $fName i $lName mam właściwe wartości. W odpowiedzi dostaję błąd: There was an SQL error: OUT or INOUT argument 3 for routine books.sp_NewAuthor is not a variable or NEW pseudo-variable in BEFORE trigger - call sp_NewAuthor('jacek', 'popielczyk', $result) Wiem, że to z mySQL ale brakuje mi już pomysłów jak to ugryźć - może ktoś już spotkał się z takim problemem i wie jak go rozwiązać Z góry dziękuje za odpowiedzi i wszelkie sugestie Edit: Udało mi się zlikwidować błąd mysql poprzez zapisanie query w poniższy sposób:
Niestety gdy wyświetlam wartość zwracaną poprzez var_dump zawsze otrzymuję 0, pomimo iż powinienem otrzymać id wstawionego rekordu. Może teraz ktoś ma jakieś pomysłu Ten post edytował fly474 3.03.2010, 20:57:14 -------------------- Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl |
|
|
4.03.2010, 08:02:06
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 070 Pomógł: 860 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
|
|
|
4.03.2010, 08:46:21
Post
#3
|
|
Grupa: Zarejestrowani Postów: 654 Pomógł: 121 Dołączył: 27.10.2007 Skąd: Poznań, Łódź Ostrzeżenie: (0%) |
Dzięki za sugestię - sprawdzę to rozwiązanie jak tylko wrócę do domu
Edit: Sprawdziłem podaną sugestię i ... nie działa . Mogę powiedzieć, że rozwiązanie to działa perfekcyjnie w MySQL Managerze, niestety nie działa z poziomu PHP i Kohana. Próbowałem tak: Kod $this->db->query('call sp_NewAuthor(?, ?, @result); select @result;', $fName, $lName); i tak: Kod $this->db->query('call sp_NewAuthor(?, ?, @result);', $fName, $lName); $this->db->query('select @result;'); W pierwszym przypadku otrzymuję błąd składniowy, w drugim zapytania działają, ale efekt jest żaden... Liczę na pomoc, a sam nadal pytam Wujka Dobra Rada Ten post edytował fly474 4.03.2010, 18:03:35 -------------------- Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl |
|
|
4.03.2010, 19:12:23
Post
#4
|
|
Grupa: Moderatorzy Postów: 6 070 Pomógł: 860 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza |
Nie pytaj wujaszka tylko zajrzyj do dokumentacji Kohany:
http://docs.kohanaphp.com/libraries/database/result#current
|
|
|
4.03.2010, 19:29:15
Post
#5
|
|
Grupa: Zarejestrowani Postów: 654 Pomógł: 121 Dołączył: 27.10.2007 Skąd: Poznań, Łódź Ostrzeżenie: (0%) |
Dzięki
Ale właśnie miałem się pochwalić, że też do tego doszedłem Zrobiłem to tak: Kod $this->db->query('call sp_NewAuthor(?, ?, @result);', $fName, $lName); $result = $this->db->query('SELECT @result;')->result_array(); var_dump($result['result']); Pozdrawiam -------------------- Kliknij jeśli moja odpowiedź Ci pomogła.
askone.pl |
|
|
Wersja Lo-Fi | Aktualny czas: 23.04.2024 - 19:07 |