Korzystam z funkcji PHP mysql_* i otrzymuję komunikat deprecated. Dlaczego?
Treść dodana: 08 grudnia 2015. Ostatnia modyfikacja: 22 czerwca 2016.
Od dobrych kilku lat na stronie dokumentacji PHP widnieje ostrzeżenie:
This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information.
Oznacza to ni mniej, ni więcej że od PHP 5.5.0 rozszerzenie przestało być wspierane i następowało powolne przygotowanie do jego usunięcia. Stało się tak, w wydanym niedawno PHP 7, w którym żadna z funkcji mysql_*() nie będzie już działać. W zamian powinno korzystać się z rozszerzenia MySQLi lub PHP Data Objects.
Ze swojej strony bardziej polecam PDO ponieważ stosuje się je we wszystkich dużych frameworkach i jest bardziej uniwersalne. Pisałem wcześniej artykuł o PDO – polecam jego przeczytanie. W skrócie przykładowe zapytanie przy użyciu PDO może wyglądać następująco (dla bazy danych MySQL):
<?php // zapytanie zawierające "placeholder" czyli parametr przekazany do zapytania $sql = 'SELECT id, name FROM users WHERE email = ?'; // nawiązanie połączenia z domyślnym kodowaniem UTF8 $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")); // przygotowanie wcześniejszego zapytania $sth = $dbh->prepare($sql); // bezpieczne bindowanie parametrów - zostanie podstawiony pod "placeholder" czyli znak zapytania $sth->bindParam(1, $_POST['email']); // wykonanie zapytania $sth->execute(); // przypisanie do zmiennej $result tablicy zawierającej wszystkie wyszukane rekordy $result = $sth->fetchAll(); // wyświetlanie foreach ($result as $row) { echo $row['id'] . ':' . $row['name']; }
Dodaj komentarz
- php
- javascript
- sql
- mysql
- postresql
- mongodb
- jquery
- sieć
- http
- apache
- ssl
- spl
- pdo
- html
- ajax
- sql server
- css
- composer
- psr
- programowanie
- regex
Wyszukaj interesujące Cię słowa kluczowe pośród istniejących porad.
Komentarze
Nie ma jeszcze żadnych komentarzy do wyświetlenia. Może chcesz zostać pierwszą osobą która podzieli się swoją opinią?