Mysql czy Mysqli będzie łatwiej przepisać pod PDO?

0

witam, Mysql czy Mysqli będzie łatwiej potem przepisać pod PDO?
w tej chwili mam napisane w MySQL chciałbym pod PDO ale jest bardzo dużo kodu który chciałbym etapami przechodzić
czy Mysqli to język zaraz po MySQL? będzie mi łatwiej później z mysqli przepisać pod pdo?
a może jeszcze jakiś wyszedł oprócz mysqli po mysql?

chodzi mi najlepiej o historie w których powstały mysql/mysqli/pdo

1

Używaj tylko PDO. Czy masz zamiar robić cokolwiek w mysql/mysqli wiedząc, że potem będziesz to przepisywać? Jak tak to odpuść sobie. Rób w PDO od początku do końca.

0
axelbest napisał(a):

Używaj tylko PDO. Czy masz zamiar robić cokolwiek w mysql/mysqli wiedząc, że potem będziesz to przepisywać? Jak tak to odpuść sobie. Rób w PDO od początku do końca.

mam już napisaną grę w mysql chciałbym przenieść się na PDO ale wiem ze bedzie trudno więc szukam najłatwiejszego sposobu może wpierw mysqli a z mysqli na PDO?

1

Skoro chcesz całkowicie przenieść to nie nadawaj sobie dodatkowej roboty. Przeniesienie mysql/mysqli na PDO to nie jest duży problem. A jak masz w czymś problem to pisz. Pomogę.

0

Rób od razu pod PDO. Trochę mieszasz pojęcia. Język bazodanowy to MySQL. PHP umożliwia łączenie się z bazami MySQL za pomocą trzech interfejsów, m.in. MySQLi i PDO. Teraz konwencja jest taka, że robi się to wszystko na PDO. Ale to nie jest kwestia formułowania zapytań, tylko wykonywania ich i połączenia z bazą danych. Poprawnie napisana aplikacja ma dodatkowy stopień abstrakcji, którym jest własny mechanizm operacji na bazie danych. Powinna być abstrakcyjna klasa bazowa, z której dziedziczą konkretne klasy odpowiedzialne za połączenie z konkretną bazą danych. Np. masz klasę bazową: "db_manager". Z niej dziedziczą: "mysql_manager", "mssql_manager", "posgre_manager" itd. Dzięki temu w każdym momencie możesz nie tylko dodać obsługę nowej bazy danych (DBMS), ale i zmienić sposób łączenia i wykonywania zapytań - robiąc te zmiany tylko w jednym miejscu. Możesz też mieć osobne klasy do tego, np: "mysql_sqli_manager" i "mysql_pdo_manager". Sprowadza się to do tego, że w swoim kodzie robisz tylko jedną zmianę. W jakimś headerze, gdzie łączysz się z bazą danych musisz utworzyć obiekt odpowiedniego typu (z tych powyżej). A tak, jeśli masz w kodzie nawalone w taki sposób, że wykorzystujesz bezpośrednio mechanizmy php, to naprawdę będziesz miał ciężką robotę do wykonania. Lepiej zrób tak, jak mówię i po kolei zmieniaj te wywołania na własne, żeby oczyścić trochę kod i przygotować się na zmiany w przyszłości.

0
axelbest napisał(a):

Skoro chcesz całkowicie przenieść to nie nadawaj sobie dodatkowej roboty. Przeniesienie mysql/mysqli na PDO to nie jest duży problem. A jak masz w czymś problem to pisz. Pomogę.

za bardzo nie wiem nawet jak za to się zabrać.
można to jakoś odpalić razem np z mysqlem?
żeby kawałek kodu działał z mysql a drugi z PDO?
może polecicie jakiś program lub coś co mi pomoże w przerobieniu tego pod PDO?
z PDO będę miał pierwszy raz styczność dlatego pytam.

używam notepada.

0
Juhas napisał(a):

Rób od razu pod PDO. Trochę mieszasz pojęcia. Język bazodanowy to MySQL. umożliwia łączenie się z bazami MySQL za pomocą trzech interfejsów, m.in. MySQLi i PDO. Teraz konwencja jest taka, że robi się to wszystko na PDO. Ale to nie jest kwestia formułowania zapytań, tylko wykonywania ich i połączenia z bazą danych. Poprawnie napisana aplikacja ma dodatkowy stopień abstrakcji, którym jest własny mechanizm operacji na bazie danych. Powinna być abstrakcyjna klasa bazowa, z której dziedziczą konkretne klasy odpowiedzialne za połączenie z konkretną bazą danych. Np. masz klasę bazową: "db_manager". Z niej dziedziczą: "mysql_manager", "mssql_manager", "posgre_manager" itd. Dzięki temu w każdym momencie możesz nie tylko dodać obsługę nowej bazy danych (DBMS), ale i zmienić sposób łączenia i wykonywania zapytań - robiąc te zmiany tylko w jednym miejscu. Możesz też mieć osobne klasy do tego, np: "mysql_sqli_manager" i "mysql_pdo_manager". Sprowadza się to do tego, że w swoim kodzie robisz tylko jedną zmianę. W jakimś headerze, gdzie łączysz się z bazą danych musisz utworzyć obiekt odpowiedniego typu (z tych powyżej). A tak, jeśli masz w kodzie nawalone w taki sposób, że wykorzystujesz bezpośrednio mechanizmy , to naprawdę będziesz miał ciężką robotę do wykonania. Lepiej zrób tak, jak mówię i po kolei zmieniaj te wywołania na własne, żeby oczyścić trochę kod i przygotować się na zmiany w przyszłości.

wszystkie połączenie pobieram z jednego pliku.php.
pan mi radzi jak dobrze zrozumiałem rozdzielić łącza na kilka plików?

$host_bazy = 'localhost';
$uzytkownik_bazy = 'uzyt';
$haslo_bazy = 'haslo';
$nazwa_bazy = 'baza';

$polacz = mysql_connect($host_bazy, $uzytkownik_bazy, $haslo_bazy) or die('socket error');
mysql_select_db($nazwa_bazy,$polacz) or die('socket error - no db');
mysql_query("SET NAMES 'utf8'");



0

wszystkie połączenie pobieram z jednego pliku.php.
pan mi radzi jak dobrze zrozumiałem rozdzielić łącza na kilka plików?

Nie, tak ma być, tylko nie masz wywoływać mysql_connect, tylko tworzyć w tym miejscu obiekt własnej klasy i łączyć się za jego pomocą:

$db = new mysql_manager($host, $user, $database);
$db->query("SET NAMES 'utf8'");

Poczytaj o klasach i dziedziczeniu, bo tu jest cała kwintesencja.

1 użytkowników online, w tym zalogowanych: 0, gości: 1