2012-12-16 32 views
5

Theo trang web PHP.net, phần mở rộng MySQL không được chấp nhận như của PHP 5.5+ Với số lượng lớn các trang PHP sử dụng MySQL, tôi muốn biết thực hành tốt nhất sẽ là gì cho các trang web hiện có bằng cách sử dụng MySQL. Bạn có ổn định trang web của mình trên một phiên bản PHP hỗ trợ MySQL không? Hoặc thực hiện cam kết chi phí và thời gian để chuyển sang tiện ích mở rộng DB khác?Tương lai của các chức năng PHP PHP

+1

Câu hỏi này có lẽ không phải là chủ đề cho Stack Overflow, nhưng là một câu hỏi hay để hỏi. –

+0

Xem bài đăng này liệt kê một số lý do để sử dụng mysqli hiện đại: http://stackoverflow.com/a/8891552/716216 –

Trả lời

4

Tiện ích mở rộng MySQL không được dùng nữa, không hỗ trợ cả MySQL. PHP hiện đang cố gắng để đẩy mở rộng MySQLi mới như một sự thay thế:

http://php.net/manual/en/book.mysqli.php

MySQLi cải thiện khi các chức năng cũ, cho phép bạn thực hiện chức năng MySQL procedurally (như trước đây) hoặc với các đối tượng.

+0

Vâng, tôi biết phần đó. PHP có thể đã làm cho MySQLI dễ dàng hơn nhiều để thực hiện nếu họ đã bảo tồn thứ tự các biến trong các cuộc gọi hàm! –

2

Theo văn bản trên PHP dẫn sử dụng, http://php.net/manual/en/intro.mysql.php

Phần mở rộng này bị phản đối như của PHP 5.5.0, và không được khuyến khích để viết mã mới vì nó sẽ được loại bỏ trong tương lai. Thay vào đó, cần sử dụng tiện ích mở rộng mysqli hoặc PDO_MySQL. Xem thêm Tổng quan về API của MySQL để được trợ giúp thêm trong khi chọn một API MySQL.

Bạn nên sử dụng mysqli.

+1

Đọc lại câu hỏi, OP đã biết điều này. – Paul

6

Nếu bạn có thời gian phát triển thì tôi thực sự khuyên bạn nên chuyển sang PDO hoặc MySQLi. Các phần mở rộng này sẽ được duy trì và được hỗ trợ chính thức bởi nhóm PHP.

Nếu ứng dụng của bạn thực sự ổn định và an toàn thì tôi sẽ tắt cảnh báo 5.5 sẽ tạo. Khi mở rộng được gỡ bỏ, tôi chắc chắn nó sẽ vẫn tồn tại như một phần mở rộng PECL mà tôi sẽ bao gồm.

1

Nếu bạn định di chuyển khỏi mysql, đừng tìm MySQLi nhưng thay vào đó, hãy dùng PDO.

Xem mysqli or PDO - what are the pros and cons?

Như tôi đã nhìn thấy nó: PDO> MySQLi> mysql.

Một số PDO pro:

  • Multidatabase
  • Object định hướng (không có chức năng toàn cầu với kỳ lạ tác dụng phụ nếu bạn không cung cấp các dblink không bắt buộc)
  • nhanh
  • đặc biệt MySQL cụ thể tùy chọn vẫn có sẵn: http://php.net/manual/en/ref.pdo-mysql.php
4

Tôi muốn biết những gì thực hành tốt nhất sẽ được cho các trang web hiện có bằng cách sử dụng MySQL.

Điều này rất dễ trả lời.
Không được có các chức năng Mysql (cũng như Mysqli hoặc PDO) trong mã ứng dụng của bạn.
Nếu bạn đang sử dụng chức năng API liệu như thế này

$data = array(); 
$name = mysql_real_escape_string($_GET['name']); 
$result = mysql_query("SELECT * FROM table WHERE name = '$name'"); 
while ($row = mysql_fetch_row($result)){ 
    $data[] = $row; 
} 

sau đó bạn phải bắt đầu viết lại mã của bạn immediatey, sử dụng một số cơ sở dữ liệu wrapper thay vì các cuộc gọi API liệu trực tiếp, để làm cho nó trông như thế này :

$data = $db->getAll("SELECT * FROM table where name=?s",$_GET['name']); 

nó sẽ không chỉ rút ngắn và tăng gia mã của bạn một cách đáng kể, nhưng cũng đặt tất cả các cuộc gọi API trong một thư viện, nơi nó có thể được thay đổi bất cứ điều gì API mới khi đội PHP quyết định giết một tuyệt vời ext.

+0

Tại sao không có tình yêu upvote? ext/mysql là * tuyệt vời *. –

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