English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
تقوم وظيفة mysqli_stmt_fetch() بتفريغ النتائج من الاستمارة المعدة إلى المتغيرات المربوطة.
يمكنك استخدام وظيفة mysqli_prepare() لإنشاء تعبير مسبق يحتوي على علامات مرجعية ("?") (إذا كانت هناك قيم). بعد تعبير مسبق، يجب استخدامmysqli_stmt_bind_param()تبين القيم إلى المعلمات الموجودة في الاستمارة المعدة.
بالمثل، يمكن استخدام وظيفة mysqli_stmt_bind_result() لربط الأعمدة في مجموعة النتائج للمتغيرات المطلوبة.
إذا تم استدعاءmysqli_stmt_fetch()وظيفة، بعد ربط الأعمدة، ستحول الأعمدة الناتجة إلى المتغيرات المحددة.
mysqli_stmt_fetch($stmt);
الترقيم | الإعدادات والشرح |
---|---|
1 | stmt(ضروري) هذا هو موضوع الاستمارة المعدة. |
إذا تم الحصول على البيانات، فإن وظيفة PHP mysqli_stmt_fetch() ستعود:TRUE؛إذا حدث خطأ، يتم العودة:FALSE; إذا لم يكن هناك المزيد من الصفوف في النتيجة، يتم العودة:NULL.
تم إدخال هذه الوظيفة في إصدار PHP 5، ويمكن استخدامها في جميع الإصدارات الأعلى.
في هذا المثال، يتم عرض:mysqli_stmt_fetch()الاستخدامات الخاصة بالوظيفة (نمط العملية)، باستخدام تعبيرات مسبقة الارتباط لربط القيم في النتائج إلى المتغيرات:
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))"); print("إنشاء الجدول.....\n"); mysqli_query($con, "INSERT INTO myplayers values(1, 'Sikhar', 'Dhawan', 'Delhi', 'India');") mysqli_query($con, "INSERT INTO myplayers values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica');") print("إدراج السجلات.....\n"); //استرجاع محتويات الجدول $stmt = mysqli_prepare($con, "SELECT * FROM myplayers"); //تنفيذ الجملة mysqli_stmt_execute($stmt); //ربط القيم في النتيجة إلى المتغيرات mysqli_stmt_bind_result($stmt, $id, $fname, $lname, $pob, $country); while (mysqli_stmt_fetch($stmt)) { print("Id: ".$id."\n"); print("fname: ".$fname."\n"); print("lname: ".$lname."\n"); print("pob: ".$pob."\n"); print("country: ".$country."\n"); print("\n"); } //إنهاء الجملة mysqli_stmt_close($stmt); //إغلاق الاتصال mysqli_close($con); ?>
نتائج الإخراج
إنشاء الجدول..... إدراج السجلات..... Id: 1 fname: Sikhar lname: Dhawan pob: Delhi country: India Id: 2 fname: Jonathan lname: Trott pob: CapeTown country: SouthAfrica
في أسلوب العمل البدني، جملة هذه الوظيفة تكون$stmt->fetch();。هذا مثال على أسلوب العمل البدني للوظيفة هذا، باستخدام جملة مسبقة التحضير لربط المتغيرات بالنتائج
<?php //تأسيس الاتصال $con = new mysqli("localhost", "root", "password", "mydb"); $con -> query("CREATE TABLE Test(Name VARCHAR(255), AGE INT)"); $con -> query("insert into Test values('Raju', 25),('Rahman', 30),('Sarmista', 27)"); print("إنشاء الجدول.....\n"); $stmt = $con -> prepare( "SELECT * FROM Test WHERE Name in(?, ?)"); $stmt -> bind_param("ss", $name1, $name2); $name1 = 'Raju'; $name2 = 'Rahman'; print("السجلات المحذوفة.....\n"); //تنفيذ الجملة $stmt->execute(); //ربط المتغيرات بالنتائج $stmt->bind_result($name, $age); while ($stmt->fetch()) { print("الاسم: ".$name."\n"); print("العمر: ".$age."\n"); } //إنهاء الجملة $stmt->close(); //إغلاق الاتصال $con->close(); ?>
نتائج الإخراج
إنشاء الجدول..... تم حذف السجل..... الاسم: Raju العمر: 25 الاسم: Rahman العمر: 30
مثال هنا يستخدم mysqli_stmt_bind_result() و mysqli_stmt_fetch() لاستخراج نتائج الاستعلام DESC
<?php $con = mysqli_connect("localhost", "root", "password", "mydb"); mysqli_query($con, "CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))"); print("إنشاء الجدول.....\n"); //شرح الجدول $stmt = mysqli_prepare($con, "DESC myplayers"); //تنفيذ الجملة mysqli_stmt_execute($stmt); //ربط القيم في النتيجة إلى المتغيرات mysqli_stmt_bind_result($stmt, $field, $type, $null, $key, $default, $extra); while (mysqli_stmt_fetch($stmt)) { print("حقل: ".$field."\n"); print("نوع: ".$type."\n"); print("الفراغ: ".$null."\n"); print("المفتاح: ".$key."\n"); print("الافتراضي: ".$default."\n"); print("إضافي: ".$extra."\n"); print("\n"); } //إنهاء الجملة mysqli_stmt_close($stmt); //إغلاق الاتصال mysqli_close($con); ?>
نتائج الإخراج
إنشاء الجدول..... حقل: ID نوع: int(11) Null: YES المفتاح: الافتراضي: مزيد من المعلومات: حقل: اسم_الشخص النوع: varchar(255) Null: YES المفتاح: الافتراضي: مزيد من المعلومات: حقل: اسم_العائلة النوع: varchar(255) Null: YES المفتاح: الافتراضي: مزيد من المعلومات: حقل: مكان_الميلاد النوع: varchar(255) Null: YES المفتاح: الافتراضي: مزيد من المعلومات: الحقل: Country النوع: varchar(255) Null: YES المفتاح: الافتراضي: مزيد من المعلومات:
في هذا المثال، يتم استخدام دالة mysqli_stmt_bind_result() و mysqli_stmt_fetch() للحصول على نتائج استعلام SHOW TABLES، وعرض جميع الجداول في قاعدة البيانات الحالية:
<?php $con = mysqli_connect("localhost", "root", "password"); //اختيار قاعدة البيانات mysqli_query($con, "CREATE DATABASE NewDatabase"); mysqli_select_db($con, "NewDatabase"); //إنشاء الجداول mysqli_query($con, "CREATE TABLE test1(Name VARCHAR(255), Age INT)"); mysqli_query($con, "CREATE TABLE test2(Name VARCHAR(255), Age INT)"); mysqli_query($con, "CREATE TABLE test3(Name VARCHAR(255), Age INT)"); print("الجداول المكتوبة.....\n"); //عرض الجداول $stmt = mysqli_prepare($con, "SHOW TABLES"); //تنفيذ الجملة mysqli_stmt_execute($stmt); //ربط القيم في النتيجة إلى المتغيرات mysqli_stmt_bind_result($stmt, $table_name); print("جميع الجداول في قاعدة البيانات الحالية: \n"); while (mysqli_stmt_fetch($stmt)) { print($table_name."\n"); } //إنهاء الجملة mysqli_stmt_close($stmt); //إغلاق الاتصال mysqli_close($con); ?>
نتائج الإخراج
الجداول المكتوبة..... جميع الجداول في قاعدة البيانات الحالية: test1 test2 test3