私はストアド プロシージャが初めてで、PHP 経由でストアド プロシージャを呼び出すと、ストアド プロシージャによって返される結果に値がないという問題があります。MySQLサーバーで手動で直接呼び出しを行うと、正常に機能し、5つの値が返されます。PHP を介してプロシージャを呼び出すと、バインディング変数に値が格納されません。
ストアド プロシージャ:
区切り記号 $$ CREATE PROCEDURE `TPE_GET_current_repair` (IN current_repair_vid VARCHAR(45)) 始める current_repair_vid v1 を選択します。 選択する sys_vendor.vendor、 受信日、 tape_repair_problem_code.tape_repair_problem_reason, sys_tape_type.tape_type、 sys_capture_location.capture_location FROM テープ修理 内部結合 `sys_vendor` on tape_repair.vendor_id = sys_vendor.id 内部結合 `tape_repair_problem_code` on tape_repair.problem_code = tape_repair_problem_code.id 内部結合 `sys_tape_type` on tape_repair.tape_type_id = sys_tape_type.id 内部結合 `sys_capture_location` on tape_repair.capture_location_id = sys_capture_location.id WHERE vid = current_repair_vid; 終わり
PHP:
$repairData = "CALL TPE_GET_current_repair('$vid')"; if ($stmt = $mysqli->prepare($repairData)) { $stmt->execute(); $stmt->bind_result($rpr_vendor, $rpr_rcv_date, $rpr_problem, $rpr_tape_type, $rpr_capt_loctn); $stmt->fetch(); }