Mysql А ты перешел с mysql на mysqli/pdo?

А ты перешел с mysql на mysqli/pdo?


  • Всего проголосовало
    18
  • Опрос закрыт .

confguru

ExAdmin
Команда форума
В PHP 5.5 эта функция deprecated. Почему?
Пора бы уже использовать все преимущества MySQLi
  • Хранимые процедуры
  • Prepared Statements
  • SSL-шифрование
  • Сжатие
  • полная поддержка кодировок
Для переделки -
PHP:
//old
$link = mysql_connect('localhost', 'user', 'password');
mysql_select_db('dbname', $link);
//new
$link = mysqli_connect('localhost', 'user', 'password', 'dbname');

http://www.php.net/manual/ru/function.mysql-query.php

PHP:
// Old
mysql_query('CREATE TEMPORARY TABLE `table`', $link);
// New
mysqli_query($link, 'CREATE TEMPORARY TABLE `table`');
 

Absinthe

жожо
Нет, не перешел. И mysql не юзал. Не использую низкоуровневые API.
 

riff

Новичок
А можно такой вопрос: почему ввели mysqli_*, почему просто не поправили/переделали mysql_* ?
 

Фанат

oncle terrible
Команда форума
Саш, большая часть этих утверждений - маркетинговая ерунда
Prepared Statements прекрасно эмулируются. Кто хотел - тот имел их уже сто лет назад.
SSL-шифрование на то же серваке имеет не очень много смысла. То же и к сжатию относится.
полная поддержка кодировок - о чем это?
Процедуры да. Но кто их раньше использовал, уже нашел на другое АПИ. Кто не использует - ему это и не аргумент.
Код:
$link = mysqli_connect
НЕ годится для переделки.
Во-первых, тупая переделка не имеет смысла, если весь код оставлять как есть.
Во-вторых, у говнокодеров нигде нет $link и передать его в кучу мест - становится проблемой.
В-третьих, если mysql_* были раскиданы по коду, то такая механическая переделка не принесет вообще никакой пользы. Mysqli - это низхкоуровневое АПИ, годное только для того, чтобы писать высокоуровневую обертку. Если у человека такой нет, то лучше ему посоветовать ПДО
 

fixxxer

К.О.
Партнер клуба
Пошел смотреть, что у меня внутри Mysql\Connection. Mysqli, оказывается. Я уж и забыл.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Вот говоря о всяких этих плюшках, важно отметить, что mysqlnd нужен, при нем появляются вкусности типа $mysqli::fetch_all() - и вот это уже реально удобно
 

Фанат

oncle terrible
Команда форума
Вот говоря о всяких этих плюшках, важно отметить, что mysqlnd нужен, при нем появляются вкусности типа $mysqli::fetch_all() - и вот это уже реально удобно
Я бы не называл fetch_all такой уж вкусностью.
А вот тот факт что без mysqlnd не работает даже fetch_array - это реально ад.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Я бы не называл fetch_all такой уж вкусностью..
мне всегда претило итерирование по результату для его вытаскивания в скрипт с точки зрения типичного веб-приложения, где никто не использует функционал типа смещений по результату выборки, и когда все запросы синхронные, и делают буферизацию выборки - это реально бред.
 

fixxxer

К.О.
Партнер клуба
Ну будет в db->getAll() на три строки меньше. Один фиг, mysqlnd сразу читает в zval и там будет COW
 
Сверху