Всем привет. Пишу свое приложение, в учебных целях. Что выбрать новичку, в этих целях, PDO или MySQLi?
Лучше с Mysqli начать. Он более низкоуровневый. Позволяет понять, что происходит вообще. Для обучения - самое оно.
хм... а чем он более низкоуровневый? pdo - это нормальный объектный интерфейс и экспешнены из коробки, в плане запрос-ответ тоже самое, только чуть больше возможностей. mysqli же можно использовать точно так же как mysql и походу дела прокачать попов-стайл )
Тем, что у него есть процедуры, да и mysqli шустрее будет чем PDO. Вообще у пыха ООП немного <матное слово>. Процедуры быстрее, выполнятся из корки, чем он начнет листить классы и объекты.
Хз. Не вижу смысла в пдо вообще. Если юзать особенности мускула, то нафик пдо. Если не юзать то пофик конечно. Просто все движки имеют свои несовместимости. И если юзать их то вся эта универсальность идёт боком.
Старое доброе mysqli можно юзать точно так же как mysql, 1-в-1, это раз. Люди адекватные и mysql не юзают напрямую, а оборачивают в свой sql-адаптер.
+1 PDO просто потому что он проще. не необходимости работать с АДовыми функциями типа mysql_fetch... или pg_query... Изучил один раз его спицифику, привык и работаешь. В каждом новом проекте, даже если нужно юзать другую БД, ненужно копашиться с разными функциями поддерживающими разные бд. С PDO все остается такимже как привык. базы меняются а интерфейс взаимодействия остается. меняются только запросы. -производительность с mysqli одинаковая. кто бы что ниговорил. разница в пределах погрешности измерения. -возможности по поддержке Mysql одинаковые. с Mysqli нет гарантий, что завтра не выпустят еще какойнить MySqli2 для работы с новыми фишками mysql5 или 6... и придется опять все переписывать. PDO универсальный. если поддержка нового появится в драйверах - то и в нем будет. а так. большой разницы нет. в остальном очень похожи. и если изучишь один - перейти на второй особых проблем небудет. только привычка
если говорить про обучение, есть факт: бо́льшая часть примеров php+mysql написана с использованием расширения mysql. который устарел. тексты с mysql_* функциями очень просто переделываются в mysqli_*, помоему это имеет значение. вот что мне категорически не нравится в mysqli, это их реализация prepared statesment. в своих поделках пользуюсь собственными классами-оболочками над mysqli/PDO. это добавляет какие-то наносекунды, на которые я легко забиваю болт. главное — удобно.
Пару дней поковырял mysqli_*, (с mysql_* до этого уже работал немного). Выбор пал юзать PDO. По двум причинам: 1) в дальнейшем то приложение которое пишу, мне может пригодиться в своих проектах, а там мне PDO будет удобнее 2) я смотрю в сторону YII, и буду потом переходить на него. А там PDO. Всем отписавшимся thanks, полезной инфы все равно было не мало=) P.S. Да, кстати странно работает подписка на тему. Сначала уведомления шли, потом через постов 8 перестали, пришло одно и все.