私はストアド プロシージャが初めてで、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();
}