Wenn du einen Execute direkt ausführst sind automatisch alle Parameter IN.
Wenn du Returnwerte einer Prozedur haben willst, musst du eine Prepare-Anweisung durchführen und die Paramter explizit vom Typ deklarieren.
SQL weiß ja sonst nicht, wohin mit den Daten.

Wie das in PHP geht weiß ich nicht.

MyCmd = "call myproc parm(?, ?, ...)"
Für jedes "?" musst du die Paramter zuweisen.