![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 19.08.2020 Ostrzeżenie: (0%) ![]() ![]() |
witam,
sam nie moge rozwiązać problemu dlatego postanowiłem się zwrócić do Was o pomoc. mam procedure, które zwraca tekst w zmiennej out: CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_returns_string`( out _txt varchar(50)) BEGIN set _txt ='berger never dies'; END i to działa bo można sobie uruchomić: set @_txt = '0'; call test.sp_returns_string(@_txt); select @_txt; nie działa juz przez PHP, zmienna wyjściowa jest pusta... co robię źle? $db = new PDO('mysql:host=localhost;dbname=test', 'root', ''); $value2 = '123456hhh'; $stmt = $db->prepare("call sp_returns_string(?) ;"); // the DECLARE trick is needed with DBLib $stmt->bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000); $stmt->execute(); echo $value; |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 19.08.2020 Ostrzeżenie: (0%) ![]() ![]() |
dziękuje, ale nadal nie znam poprawnego rozwiązania:
znalazłem wiele rzeczy, nie ma ostateczne rozwiązanie mojego problemu np. piszą o bugu w mysql w 2010 roku... $stmt = $db->prepare("CALL sp_returns_string(:in_string, @out_string)"); $value='pppppp'; $stmt->bindParam(':in_string', $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000); $stmt->execute(); // fetch the output $outputArray = this->db->query("select @out_string")->fetch(PDO::FETCH_ASSOC); print "procedure returned " . $outputArray['@out_string'] . "\n"; tu dostaje blad przez to this chyba.... Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR) in C:\xampp\htdocs\trace\test2.php on line 28 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 16:35 |