Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak pomyślnie przepisać stary kod mysql-php z przestarzałymi funkcjami mysql_*?

Właściwie proste, słodkie i krótkie:tak, już nie jest konieczne.

Przyjrzyjmy się kodowi, a nie to, że coś zgubiliśmy:

  • __construct - Konstruktor zawierał jedynie całą konfigurację. PDO ma tutaj znacznie prostszą koncepcję, ciąg połączenia zawierający najwięcej informacji:

     mysql:host=127.0.0.1;dbname=people;charset=UTF-8
    

    Również PDO zapewnia konstruktor do użycia w postaci gotowej, więc podwójne nie jest konieczne.

  • connect - Również funkcja połączenia nie jest już potrzebna. Odbywa się to już poprzez utworzenie instancji PDO. Możesz szukać wyjątków, instrukcja PHP ma przykład na swojej stronie konstruktora .

  • selectDb - Ta skomplikowana funkcja nie jest już potrzebna. Wow, trzecia funkcja, którą możemy po prostu odrzucić z powodu ciągu połączenia PDO. Dużo mocy przy tak mniejszej liczbie postaci. Pozdrawiam!

  • __destruct - Destruktor. Bądźmy uczciwi:MySQL też tego nie potrzebował. Jednak z PDO otrzymujemy to za darmo - bez pisania ani jednej linii kodu.

Wygląda dobrze! Udało Ci się przeprowadzić migrację z tej mało znanej klasy bazy danych do PDO, usuwając przestarzały kod! Gratulacje:

$db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');

Jeśli teraz pomyślisz, co jeśli chcę mieć własną klasę bazy danych? Cóż, możesz to zrobić, ponieważ możesz rozszerzyć z PDO (tak, to działa!):

class DB extends PDO
{
   ... my super-new-shiny-code
}

Dlaczego możesz chcieć to zrobić? Nie mam pojęcia, ale może jest to bardziej płynne dla twojego kodu. Jeśli szukasz lepszego przykładu kodu, mam go pod adresem Tabela PHP/MySQL z hiperłączami .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uniknąć dzielenia przez zero w MySQL

  2. MySQL:Jak zresetować lub zmienić hasło roota MySQL?

  3. Używanie mysql concat() w klauzuli WHERE?

  4. Składnia SQL SELECT – wymieniona przez DBMS

  5. Nie można zwrócić wyników z procedury składowanej za pomocą kursora Pythona