2012-04-03 84 views
15

Tôi chưa bao giờ sử dụng php trước và đang cố kết nối với phiên bản SQL Server 2008 trên máy chạy Windows chạy IIS7 và PHP5.3.Lỗi nghiêm trọng PHP: Gọi hàm không xác định mssql_connect()

Tôi đã tải và cài đặt SQLSRV30.EXE từ here trong C:\Program Files (x86)\PHP\ext thêm này để C:\Program Files (x86)\PHP\php.ini:

extension=php_sqlsrv_53_nts.dll 

Sau đó khởi động lại toàn bộ máy chủ. Tôi vẫn gặp lỗi nghiêm trọng trong tệp nhật ký của mình cho biết:

PHP Fatal error: Call to undefined function mssql_connect() 

Tôi cần làm gì để kết nối với Microsoft SQL Server 2008 từ PHP 5.3 chạy trên IIS7/Windows Server 2008? Tôi chắc chắn đó là một cái gì đó thực sự ngớ ngẩn mà tôi là thiếu ...

ĐẦY ĐỦ phpinfo ->http://demo.mandibleweb.com/zapified/hello.php

phpinfo():

PHP Version 5.3.10 





System 

Windows NT MWD001 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 



Build Date 

Feb 2 2012 20:10:58 



Compiler 

MSVC9 (Visual C++ 2008) 



Architecture 

x86 



Configure Command 

cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack" "--disable-zts" "--disable-isapi" "--disable-nsapi" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\php-sdk\oracle\instantclient11\sdk,shared" "--with-enchant=shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet" "--with-mcrypt=static" "--disable-static-analyze" 



Server API 

CGI/FastCGI 



Virtual Directory Support 

disabled 



Configuration File (php.ini) Path 

C:\Windows 



Loaded Configuration File 

C:\Program Files (x86)\PHP\php.ini 
+0

Tôi có tình huống tương tự (không có khối MySQL), và giải pháp của tôi là ở đây: http://stackoverflow.com/questions/5179535/fatal-error-call-to-undefined-function-mysql-connect-in-c -apache-htdocs-test –

Trả lời

30

Tôi vừa cố gắng cài đặt tiện ích đó trên máy chủ dev của mình.

Trước tiên, hãy đảm bảo rằng tiện ích được bật chính xác. Đầu ra phpinfo() của bạn có vẻ không hoàn chỉnh.

Nếu nó thực sự được cài đặt đúng cách, phpinfo() của bạn nên có một phần đó trông như thế này: enter image description here

Nếu bạn không nhận được rằng phần trong phpinfo() của bạn. Đảm bảo rằng bạn đang sử dụng đúng phiên bản. Có cả phiên bản tiện ích mở rộng không an toàn và chủ đề an toàn.

Cuối cùng, hãy kiểm tra cài đặt extension_dir của bạn. Theo mặc định, nó là: extension_dir = "ext", phần lớn thời gian hoạt động tốt, nhưng nếu không thử: extension_dir = "C:\PHP\ext".

============================================== =============================

EDIT đưa thông tin mới:

Bạn đang sử dụng chức năng sai . mssql_connect() là một phần của tiện ích mở rộng Mssql. Bạn đang sử dụng phần mở rộng của microsoft, vì vậy hãy sử dụng sqlsrv_connect(), đối với API cho trình điều khiển microsoft, hãy xem SQLSRV_Help.chm cần được trích xuất vào thư mục ext của bạn khi bạn trích xuất tiện ích.

+0

Xin lỗi, đây là toàn bộ [phpinfo()] (http: // demo.mandibleweb.com/zapified/hello.php), tôi có phần 'sqlsrv' – Greg

+0

Cập nhật câu trả lời của tôi: D – F21

+0

Vâng, tôi chuẩn bị nói rằng tôi không thấy phần mssql trong phpinfo. –

1

php.ini lẽ cần để đọc: extension=ext\php_sqlsrv_53_nts.dll

Hoặc di chuyển tệp vào cùng thư mục với tệp thực thi php. Đây là những gì tôi đã làm để php5 của tôi cài đặt trong tuần này để có được odbc_pdo làm việc. : P

Ngoài ra, điều đó không giống như đầu ra phpinfo() phù hợp. Nếu bạn tạo tệp có nội dung
<? phpinfo(); ?> và truy cập vào trang đó, đầu ra HTML sẽ hiển thị một số phần, bao gồm một phần có mô đun được tải. (Đã chỉnh sửa để thêm: như được hiển thị trong ảnh chụp màn hình của câu trả lời được chấp nhận ở trên)

+0

Xin lỗi, đây là [phpinfo()] đầy đủ (http://demo.mandibleweb.com/zapified/hello.php) – Greg

0

Tôi đang sử dụng IIS và mysql (trực tiếp tải về, mà không wamp hay xampp) php của tôi đã được cài đặt trong c: \ php tôi đã nhận được lỗi của "gọi điện để xác định hàm mysql_connect()" Đối với tôi sự thay đổi của extension_dir đã hoạt động. Đây là những gì tôi đã làm. Trong php.ini, Ban đầu, tôi có dòng này

; Trên cửa sổ: extension_dir = "ext"

tôi đã thay đổi nó để:

; Trên cửa sổ: extension_dir = "C: \ php \ ext"

Và nó hoạt động. Tất nhiên, tôi đã làm những thứ khác cũng giống như bỏ ghi chú các phần mở rộng dll vv, như đã giải thích trong những nhận xét khác.

Các vấn đề liên quan