Здравствуйте, прошу сильно не ругаться. Я думал что PDO это как бы способ использования базы данных, и что mysql, mysqli разные вещи
когда попытался в PDO использовать mysqli, выбило ошибку, что такого драйвера нет. Покопался в интернете и понял, что pdo не работает с mysqli, потому что mysqli - это тоже как бы способ использования mysql.
Разъясните пожалуйста, что лучше использовать, что быстрее. Mysql вроде как в сл. версиях PHP больше не будет поддерживаться.
Думал использовать PDO, так как там с помощью меток говорят 100% защита от SQL-инъекций
Извиняюсь за тупой вопрос ((
exotica
17.06.2013 - 09:21
mysql_ лучше действительно уже не использовать, устаревает понемногу
я использую mysqli_ т.к. не знаю почему но мне больше понятно куда и что.
pdo: ничего не скажу, попробовал раз, но решил оставить изучение на попозже )
И самое важное, если вы создали подключние mysql_connect то вы не сможети обратится к нему череез mysqli_ или pdo и т.п.
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Valick
17.06.2013 - 09:49
задача PDO абстрагироваться от конкретной базы данных
на сколько я знаю для работы в PDO с MySQL раньше использовался mysqli_ (может для кого-то секрет но драйвер был разработан еще в 2007 году если не ошибаюсь) сейчас по-моему там есть свои драйвера (опять же если не ошибаюсь)
"Недостатки" PDO это, как ни странно, её универсальность.
mysqli_ это драйвер для работы с MySQL и если кроме этой БД никакая больше использоваться не будет, то на мой взгляд нет смысла использовать PDO, которая по сути является оболочкой для набора драйверов.
_____________
Стимулятор ~yoomoney - 41001303250491
Игорь_Vasinsky
17.06.2013 - 09:50
100500 ответов тебе даст гугл.
у каждой библии свои недостатки и свои плюсы.
каждый выбирает то что ему по душе.
Цитата |
ак как там с помощью меток говорят 100% защита от SQL-инъекций |
100% защиты даст тебе правильный и грамотный подход к обработке данных.
и да - PDO работает с многими драйверами
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Значит MySQLi это как и PDO, только работает с одной базой - MySQL. Я верно понял ? Получается, что устарела не MySQL, а команды, начинающие на mysql_ и использовать MySQL в PDO - ни чем не чревато ?
Valick
17.06.2013 - 10:24
Цитата |
Получается, что устарела не MySQL, а команды, начинающие на mysql_ |
да
Цитата |
Значит MySQLi это как и PDO |
не совсем mysqli_ - это код - драйвер - база
PDO - это код - оболочка - драйвер - база
для уверенной работы с MySQL через PDO надо знать SQL-диалект PDO и SQL-диалект MySQL
_____________
Стимулятор ~yoomoney - 41001303250491
Цитата (Valick @ 17.06.2013 - 06:24) |
Цитата | Получается, что устарела не MySQL, а команды, начинающие на mysql_ |
да
Цитата | Значит MySQLi это как и PDO |
не совсем mysqli_ - это код - драйвер - база PDO - это код - оболочка - драйвер - база
для уверенной работы с MySQL через PDO надо знать SQL-диалект PDO и SQL-диалект MySQL
|
mysqli драйвер ? - хм, а почему тогда он отсутсвует в pdo ?
Игорь_Vasinsky
17.06.2013 - 22:50
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Valick
17.06.2013 - 23:19
Цитата |
хм, а почему тогда он отсутсвует в pdo ? |
я же писал выше... а теперь главный вопрос, для кого?
вот например цитата из вики за 2010год
Цитата |
PDO не использует абстрактных слоёв для подключения к БД, наподобие ODBC, а использует для разных БД их «родные» драйверы, что позволяет добиться высокой производительности. |
Но на дворе уже 2013 год и прогресс на то и прогресс, что бы не стоять на месте. PDO насколько я понимаю уже само почти превратилось в драйвер.
_____________
Стимулятор ~yoomoney - 41001303250491