@michal kralik - दुर्भाग्य से MySQL C API के साथ एक बग है जिसका PDO उपयोग करता है जिसका अर्थ है कि MySQL के कुछ संस्करणों के साथ उपरोक्त के रूप में अपना कोड चलाने से त्रुटि होती है:
आप बग रिपोर्ट bugs.mysql.com पर देख सकते हैं . इसे संस्करण 5.5.3+ और 6.0.8+ के लिए ठीक कर दिया गया है।
समस्या को हल करने के लिए, आपको इन और आउट मापदंडों को अलग करना होगा, और परिणाम को इस तरह संग्रहीत करने के लिए उपयोगकर्ता चर का उपयोग करना होगा:
$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(:in_string, @out_string)");
$stmt->bindParam(':in_string', 'hello');
// call the stored procedure
$stmt->execute();
// fetch the output
$outputArray = $this->dbh->query("select @out_string")->fetch(PDO::FETCH_ASSOC);
print "procedure returned " . $outputArray['@out_string'] . "\n";