0

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

4

1 に答える 1

0

問題を修正しました。最初の選択ステートメントを忘れていたため、ステートメントが失敗していました。

于 2013-11-15T19:12:07.480 に答える