मैं PHP पर अपने मैक जो पीएचपी 5.3 यहाँ चल रहा है सक्षम के लिए pdo_odbc विस्तार पाने के लिए कोशिश कर रहा हूँ क्या मैं इसे काम करने के लिए प्राप्त करने की कोशिश करने के लिए किया था:को सक्षम करने पर पीएचपी pdo_odbc विस्तार एक मैक OSX
मैं काढ़ा
$ brew install unixodbc
पीएचपी 5.3.8 के लिए स्रोत डाउनलोड की गई साथ UnixODBC स्थापित। टर्मिनल में मैंने pdo_odbc फ़ोल्डर में नेविगेट किया। फिर निम्नलिखित किया।
$ phpize $ ./configure --with-pdo-odbc=unixODBC $ make
एक त्रुटि हुई।
/Users/todd/Downloads/php-5.3.8/ext/pdo_odbc/pdo_odbc.c:43: error: ‘ZEND_MOD_END’ undeclared here (not in a function) /Users/todd/Downloads/php-5.3.8/ext/pdo_odbc/pdo_odbc.c: In function ‘zm_startup_pdo_odbc’: /Users/todd/Downloads/php-5.3.8/ext/pdo_odbc/pdo_odbc.c:135: warning: cast to pointer from integer of different size
कुछ ब्लॉगों के आधार पर मैं
{NULL,NUll, NULL}
साथZEND_MOD_END
की जगह ली और फिर से बनाने के भाग गया। इस बार यह पालन किया।तब मैंने "सुडो इंस्टॉलेशन इंस्टॉल किया" और उसमें एक्सटेंशन को सही जगह पर इंस्टॉल किया। मैं इसे सक्षम करने के लिए php.ini modifed। और यह phpInfo()
अब तक बहुत अच्छा है। लेकिन जब मैं साधारण परीक्षण का प्रदर्शन शुरू हो रहा है जब मैं इस कोड को निष्पादित करने की कोशिश की हर दूसरे के बारे में त्रुटियों, कोशिश
php(20048,0x7fff796f1960) malloc: *** mmap(size=2977160837258543104) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
terminate called throwing an exceptionAbort trap: 6
यह फेंक दिया गया था मिलती है:
<?php
$dsn = 'odbc:Driver={FileMaker ODBC};Server=localhost;Database=CalDAV;';
$pdo = new PDO($dsn, "odbc", "odbc");
$sql = "SELECT * From Users Where id = 2";
$r = $pdo->query($sql);
print_r($r->fetch(PDO::FETCH_ASSOC));
$sql = "SELECT * From Users Where id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute(array(2));
print_r($stmt->fetch(PDO::FETCH_ASSOC));
?>
इस लाइन अपवाद का कारण बनता है।
$stmt->execute(array(2));
क्या किसी को मैक पर काम करने के लिए pdo_odbc प्राप्त करने का कोई अनुभव है। मैं वास्तव में इस एक्सटेंशन को काम करना चाहता हूं। सुझाव?
सुनिश्चित नहीं है कि कोई ब्रू समकक्ष है लेकिन मैं बस "सुडो पोर्ट स्थापित php5-odbc" चलाता हूं और यह आसानी से स्थापित होता है। – Kevin
ऐसा लगता है कि PDO_ODBC एक्सटेंशन में एक बग है: https://bugs.php.net/bug.php?id=52942 मेरा अनुमान एक स्मृति 'आवंटित करने के लिए एक बुरा' malloc() 'कॉल है जिसे पहले ही आवंटित किया गया है। –
केविन, मैं बहुत यकीन है कि PHP5-ODBC सिर्फ पुराने गैर पीडीओ ODBC विस्तार है हूँ। मैं पीडीओ-ODBC विस्तार पर मैक के लिए जा रहा प्राप्त करने के लिए कोशिश कर रहा हूँ। – toddgeist