PDOStatement:: CloseCursor — يغلق المؤشر بحيث يمكن تنفيذ العبارة مرة أخرى. (PHP 5 >= 5.1.0، PECL pdo >= 0.9.0)
منطقي PDOStatement::إغلاق المؤشر (باطل)
يقوم PDOSTatement:: CloseCursor() بتحرير الاتصال بخدمة قاعدة البيانات بحيث يمكن إصدار عبارات SQL أخرى، ولكنه يترك العبارة في حالة يمكن تنفيذها مرة أخرى.
تعد هذه الطريقة مفيدة جدًا لبرامج تشغيل قاعدة البيانات التي لا تدعم تنفيذ كائن PDOStatement آخر عندما لا تزال هناك صفوف غير مستخرجة في آخر كائن PDOStatement تم تنفيذه. إذا كان برنامج تشغيل قاعدة البيانات يخضع لهذا القيد، فقد تحدث أخطاء خارج الترتيب.
يتم تنفيذ PDOStatement:: CloseCursor() إما كطريقة اختيارية خاصة ببرنامج التشغيل (الأكثر كفاءة)، أو يتم تنفيذها كطريقة احتياطية عامة لشركة PDO عندما لا تكون هناك وظيفة خاصة ببرنامج التشغيل. الدلالات الاحتياطية العامة هي نفس كود PHP التالي:
<?phpdo { while ($stmt->fetch()) ; if (!$stmt->nextRowset())break;} while (true);?>
إرجاع TRUE عند النجاح، أو FALSE عند الفشل.
في المثال التالي، يقوم كائن PDOStatement $stmt بإرجاع صفوف متعددة، لكن التطبيق يقوم فقط بإحضار الصف الأول، مما يترك كائن PDOStatement في حالة لا تحتوي على أي صفوف. للتأكد من إمكانية تشغيل التطبيق بشكل طبيعي مع كافة برامج تشغيل قاعدة البيانات، يستدعي $stmt PDOStatement:: CloseCursor() مرة واحدة قبل تنفيذ كائن $otherStmt PDOStatement.
<?php/* إنشاء كائن PDOStatement */$stmt = $dbh->prepare('SELECT foo FROM bar');/* إنشاء كائن PDOStatement ثانٍ */$otherStmt = $dbh->prepare('SELECT foobaz FROM) foobar');/* تنفيذ العبارة الأولى*/$stmt->execute();/* جلب الصف الأول فقط من مجموعة النتائج */$stmt->fetch();/* قد تكون بعض برامج التشغيل مطلوبة الاستدعاء التالي لـ CloseCursor() */$stmt-> CloseCursor();/* يمكنك الآن التنفيذ البيان الثاني*/$otherStmt->execute();?>