![]() |
![]() |
![]()
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%) ![]() ![]() |
Podaje rozwiązanie, moze się komus jeszcze przyda?
$stmt = $db->prepare("CALL sp_returns_string(:in_1, :in_2, @out_string1, @out_string2)"); $value='pppppp';$value2='xxxx'; $stmt->bindParam(':in_1', $value, PDO::PARAM_STR , 4000); $stmt->bindParam(':in_2', $value2, PDO::PARAM_STR , 4000); $stmt->execute(); $outputArray = $db->query("select @out_string1, @out_string2")->fetch(PDO::FETCH_ASSOC); // print_r($outputArray); print "procedure returned: " . $outputArray['@out_string1'] . "\n"; print "procedure returned: " . $outputArray['@out_string2'] . "\n"; //print_r($result = $stmt->fetchAll(PDO::FETCH_CLASS)); pozdrawia Piotr |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 08:56 |