ケース: 次のようなストアド プロシージャ:
DROP PROCEDURE IF EXISTS `XofferCommon`.`getCdpc`;<br>
DELIMITER $$<br>
CREATE PROCEDURE `XofferCommon`.`getCdpc` (IN in_city_ID INT, OUT out_country_id INT, OUT out_district_id INT, OUT out_provence_id INT, OUT out_city_id INT)<br>
BEGIN<br>
DECLARE city_ID INT DEFAULT in_city_ID;<br>
SELECT t.Id, d.Id, p.Id, c.Id INTO out_country_id, out_district_id, out_provence_id, out_city_id FROM ((tblCity AS c INNER JOIN tblProvence AS p ON c.tblProvence_Id = p.ID) INNER JOIN tblDistrict AS d ON p.tblDistrict_Id = d.ID) INNER JOIN tblCountry AS t ON -d.tblCountry_Id = t.ID WHERE c.id = city_ID;<br>
END$$<br>
DELIMITER ;<br><br>
<br>---------------------------------------------------
Input: int referring to in_city_id<br>
Output: 4 x int country district provence and city id's<br>
---------------------------------------------------<br>
Php: プロシージャを呼び出して、返された 4 つのオブジェクトを 4 つの変数に格納したい
if ($res = $mysqli->query( 'CALL getCdpc(1321,@co,@di,@pr,@ci);SELECT @co,@di,@pr,@ci'))<br>
{<br>
while($row = $res->fetch_object())<br>
{<br>
print($row);<br>
}<br>
$res->close();<br>
}<br>
else<br>
{<br>
print "<br> no result given <br>";<br>
}<br>
<br>
Result:<br>
-------<br>
私は常にゼロ行を返します
<br>
<br>
More info:<br>
----------<br>
in mysql sql the results get returned when I do:<br>
->call xoffercommon.getCdpc(1321,@co,@di,@pr,@ci);<br>
->select @co,@di,@pr,@ci;<br>
=> @co @di @pr @ci<br>
1 2 3 4<br>
<br>
Question:<br>
---------<br>
プロシージャの呼び出しとその結果の選択という 2 つのクエリを実行する必要がありますか?
1行で実行する方法はありますか?
...私の問題の解決策がどこにも見つからなかったので、助けてください。すでにプロシージャでリターンを試みましたが、これは関数でのみ許可されています。すでに 2 週間が経過しています... 読書/試行錯誤によって多くのことを学びました ;-)、しかし、このケースを解決するものは何もありませんでした....