"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية الوصول إلى معلمات OUT في PHP عند العمل مع إجراءات MySQL المخزنة؟

كيفية الوصول إلى معلمات OUT في PHP عند العمل مع إجراءات MySQL المخزنة؟

تم النشر بتاريخ 2024-11-03
تصفح:183

How to Access OUT Parameters in PHP When Working with MySQL Stored Procedures?

الوصول إلى معلمات OUT في PHP باستخدام إجراءات MySQL المخزنة

عند العمل مع الإجراءات المخزنة في MySQL باستخدام PHP، يتم الحصول على قيمة يمكن أن تشكل المعلمة "OUT" تحديًا بسبب التوثيق المحدود. ومع ذلك، هذه العملية ممكنة من خلال استخدام mysqli PHP API.

باستخدام mysqli

فكر في إجراء مخزن يسمى "myproc" مع معلمة IN واحدة ("i") ومعلمة OUT واحدة ("j"). لاسترداد قيمة "j" باستخدام PHP، اتبع الخطوات التالية:

$mysqli = new mysqli(  "HOST", "USR", "PWD", "DBNAME" );
$ivalue=1;

// Execute the stored procedure and store the result.
$res = $mysqli->multi_query( "CALL myproc($ivalue,@x);SELECT @x" );

if( $res ) {
    $results = 0;

    // Iterate through the results.
    do {
        if ($result = $mysqli->store_result()) {

            // Display the result header.
            printf( "<b>Result #%u</b>:<br/>",   $results );

            // Fetch and display the OUT parameter value.
            while( $row = $result->fetch_row() ) {
                foreach( $row as $cell ) {
                    echo $cell, "&nbsp;";
                }
            }

            $result->close();
            if( $mysqli->more_results() ) echo "<br/>";
        }
    } while( $mysqli->next_result() );
}

// Close the mysqli connection.
$mysqli->close();

في هذا المثال، يتم تخزين قيمة المعلمة "j" في كائن "النتيجة" ويتم جلبها باستخدام طريقة fetch_row(). يتيح لنا ذلك الوصول إلى قيمة المعلمة OUT وعرضها من الإجراء المخزن.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3