2012-02-11 34 views
6

Tôi đang cố gắng sử dụng máy chủ phát triển mới trong PHP 5.4. Nó chạy phpinfo() tốt nhưng trên mã trang web của tôi và cũng phpMyAdmin.php họ đang ném các lỗi sau:Máy chủ phát triển PHP 5.4 không nhận ra mysql_connect()

Call to undefined function mysql_connect()

Họ đang chạy qua localhost: 8000

php -m đang hiển thị mysqlnd được nạp nhưng điều đó có lẽ chưa đủ .

Hệ điều hành là Windows 7

Bạn nghĩ gì?

+0

Xin chào Bob. Bạn cần giải thích tình huống của mình tốt hơn một chút. Bạn đang chạy ngăn xếp phát triển nào? Ví dụ bằng cách sử dụng XAMPP hoặc WAMP hay khác? "Máy chủ phát triển mới" - Chúng tôi cần biết điều đó có nghĩa là gì để giúp đỡ. – Relequestual

+1

@Relequestual: Anh ấy có nghĩa là máy chủ web PHP 5.4 được tích hợp sẵn: http://php.net/manual/en/features.commandline.webserver.php Máy chủ web này được thiết kế cho mục đích phát triển và không được sử dụng trong sản xuất. – Mike

Trả lời

12

mysqlnd là thư viện mà có thể được sử dụng từ PHP 5.3, thay vì libmysql, bởi 3 phần mở rộng PHP:

  • mysql, cung cấp mysql_* chức năng,
  • mysqli, cung cấp số mysqli_* functons,
  • pdo_mysql, cho phép người dùng sử dụng PDO với cơ sở dữ liệu MySQL.

mysqlnd tự nó không xuất khẩu bất kỳ chức năng bạn có thể sử dụng từ kịch bản PHP của bạn: nó chỉ cung cấp kết nối MySQL với những phần mở rộng 3 - đó là những người xuất khẩu chức năng bạn có thể sử dụng.


Nếu bạn muốn sử dụng mysql_* chức năng, bạn phải chắc chắn rằng phần mở rộng mysql được kích hoạt, với một cái gì đó mà whould trông như thế này trong một trong những .ini file phân tích bằng PHP:

extension=mysql.dll 


là một sidenote: các mysql_* chức năng không nên được sử dụng nữa, nhất là đối với các dự án mới: phần mở rộng mysql là cũ, và không cho phép một để sử dụng gần đây (chúng tôi ll, không phải là gần đây nữa, thực sự) tính năng của MySQL.

Thay vào đó, bạn nên sử dụng mysqli hoặc PDO.

+0

Cảm ơn, tôi cần có tệp mysql.dll và mysqli.dll được liên kết trong tệp php.ini. Tất cả hiện đang hoạt động tốt. –

2

Đó là vì register_globals không còn được bao gồm trong PHP5.4, trong các phiên bản cũ hơn, phiên bản này không còn được dùng nữa và bạn có thể sử dụng nó. Lý do là vì nó sẽ để lại những khoảng trống bảo mật rất lớn cho các hacker để khai thác.

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