अजीब तरह से, उबंटू द्वारा प्रदान किए गए PHP पैकेज Mysql नेटिव ड्राइवर , लेकिन पुराने libmysqlclient . के साथ इसके बजाय (उबंटू 13.10 पर डिफ़ॉल्ट पैकेज के साथ परीक्षण किया गया):
<?php
echo $dbh->getAttribute(PDO::ATTR_CLIENT_VERSION); // prints "5.5.35", i.e MySQL version
// prints "mysqlnd (...)" when using mysqlnd
आपका बहुत ही परीक्षण मामला ("4 संपादित करें", setAttribute(MYSQL_ATTR_USE_BUFFERED_QUERY, true)
के साथ ) PHP 5.5.3 के साथ अपेक्षित रूप से काम करता है जो मैन्युअल रूप से mysqlnd के साथ संकलित है:
./configure --with-pdo-mysql=mysqlnd # default driver since PHP v5.4
... लेकिन इसके साथ विफल रहता है:
bash> ./configure --with-pdo-mysql=/usr/bin/mysql_config
यह काफी अजीब है कि यह केवल तभी विफल होता है जब पहला कथन दो बार निष्पादित किया जाता है; यह libmysqlclient . में एक बग होना चाहिए ड्राइवर।
MYSQL_ATTR_USE_BUFFERED_QUERY
होने पर दोनों ड्राइवर अपेक्षित रूप से विफल हो जाते हैं false
है . आपका सामान्य ज्ञान पहले ही प्रदर्शित हो चुका है
परिणाम सेट में पंक्तियों की संख्या की परवाह किए बिना, यह अपेक्षित व्यवहार क्यों है।
माइक ने पाया कि वर्तमान समाधान php5-mysqlnd
. को स्थापित कर रहा है कैननिकल-अनुशंसित php5-mysql
. के बजाय पैकेज ।