2009-12-29 18 views
5

प्रत्येक के अंतर/फायदे क्या हैं? नुकसान?PHP में MySQL बनाम MySQLi

मैं कोडिंग वरीयताओं या व्यक्तिपरक उत्तरों की तलाश नहीं कर रहा हूं।

व्यावहारिक दुविधाएं क्या हैं? (भंडारण, कार्यान्वयन, कोड कैसे दिखता है, पर्यावरण आवश्यकताओं ...)

+0

इसके अलावा * [MySQL बनाम MySQLi जब PHP का उपयोग] (http://stackoverflow.com/questions/548986/mysql-vs-mysqli-when-using-php) * –

उत्तर

11

आप mysqli के साथ prepared statements का उपयोग कर सकते हैं।
और function to store large (blob) data भी है कि "पुराना" mysql एक्सटेंशन नहीं है।

// php-mysql: no oo-interface 
$mysqli = new mysqli('localhost', 'localonly', 'localonly'); 
if ($mysqli->connect_error) { 
    die($mysqli->connect_error); 
} 

// php-mysql: no prepared statements 
$stmt = $mysqli->prepare("INSERT INTO foo (mydata) VALUES (?)"); 
$stmt->bind_param("b", $null); 

// php-mysql: no function to send data in chunks 
$fp = fopen("php://input", "r"); 
while (!feof($fp)) { 
    $chunk = fread($fp, 4096); 
    $stmt->send_long_data(0, $chunk); 
} 
$stmt->execute(); 
+0

+1, बोनस प्रश्न - यदि MySQL स्थापित है तो मैं MySQLi कैसे स्थापित करूं? MySQL डेटाबेस को कॉल करने के लिए MySQLi फ़ंक्शंस का उपयोग कर सकते हैं? – Moshe

+0

आप MySQL सर्वर से कनेक्ट करने के लिए दोनों मॉड्यूल का उपयोग कर सकते हैं। mysqli "केवल" एक php मॉड्यूल है जिसे आप या तो php कोर में संकलित कर सकते हैं या मॉड्यूल के रूप में लोड कर सकते हैं। जैसे * निक्स वितरण में अक्सर php-modulename संकुल होते हैं जिन्हें आप डिट्रिब्यूशन के पैकेज मैनेजर के माध्यम से इंस्टॉल कर सकते हैं। – VolkerK

9

PHP मैनुअल पर overview पढ़ें, यह अधिकतर प्रश्नों का उत्तर देता है और तुलना चार्ट है।

+0

कि सिंहावलोकन से: "आप तो MySQL संस्करण 4.1.3 का उपयोग कर रहे हैं या बाद में यह दृढ़ता से अनुशंसा की जाती है कि आप इसके बजाय mysqli एक्सटेंशन का उपयोग करें। " – Oscar

3

तैयार कथन mysqli में उपलब्ध हैं, एक के लिए। आप OO इंटरफ़ेस का भी उपयोग कर सकते हैं ताकि mysql_foo_bar() के बजाय आपके पास $con->foo_bar() हो।

संबंधित मुद्दे