Mysql Кто что думает по поводу статьи

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Мне интересно про плагины mysqlnd =) Ну и про эмуляцию prepared в PDO (PS: где @Фанат ?)
 

rukhem

Новичок
А вы сами что можете сказать по поводу прочитанного ?
 

hell0w0rd

Продвинутый новичок
c0dex, по поводу эмуляции Фанат давно всех предупреждал) В частности где-то был описан случай с $stmt->bindValue('id', '5', \PDO::pARAM_INT); и что на это PDO выдает ошибку, когда включен режим эмуляции.
Для меня статья стала небольшим открытием. Мне раньше казалось - использовать абстрактный драйвер лучше, а на деле, видимо, нет. Тот же постгрес вроде как асинхронные функции добавляет, у mysql предупреждения, оказывается, есть (о индексах). Печально, что такие возможности не используются современными DBAL.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
rukhem, я могу сказать только лишь то, что все расширения, что есть, для работы с бд обладают своими скрытыми и не очень багами-фичами-недоработками, кому как. Я привык использовать PDO, хотя последнее время активно бесит невозможность посмотреть нативно запрос с подстановленными плейсхолдерами.
 

AnrDaemon

Продвинутый новичок
А с какой версии вообще аттрибут PDO::ATTR_EMULATE_PREPARES доступен? И доступен ли он вообще для MySQL?

Код:
PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[IM001]: Driver does not support this function: driver does not support that attribute' in .../core/db-connect.php:40
Stack trace:
#0 .../core/db-connect.php(40): PDO->getAttribute(20)
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
AnrDaemon, вопрос хороший, у меня на 5.4 и на 5.5 был доступен, если память не изменяет. А ты как вызываешь его?
 

AnrDaemon

Продвинутый новичок
Залез в коннектор первой попавшейся тулзы и добавил пару строк…
PHP:
$DSN = "{$__s['SQL']}:host={$__s['SQLHOST']};port={$__s['SQLPORT']};dbname={$__s['SQLDB']}";

try
{
  // PDO driver connection
  $_pdo = new PDO($DSN, $__s['SQLUSER'], $__s['SQLPWD'],
    array( // Driver-specific options
      PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
      PDO::ATTR_PERSISTENT => false,
      PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
      // MySQL exclusive stuff
      PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8;',
    ));
}
catch(Exception $e)
{
  error_log('Unable to connect to database. (' . $e->getMessage() . ')');
  die(1);
}

unset($__database, $__s, $DSN, $e);
$_s = $_pdo->getAttribute(PDO::ATTR_EMULATE_PREPARES);
print_r($_s);
die();
ПыСы
PDO::MYSQL_ATTR_DIRECT_QUERY доступен, если что.

А, да, спецом для тех, кто не в теме - PDO_MYSQL сейчас собирается с mysqlnd, точно так же как и mysqli, и, если на то пошло, mysql. Т.е. по памяти расход у них различается в пределах разницы в работе с памятью самих расширений.
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
AnrDaemon, я имел в виду, что прокатывал set атрибут, а так надо попробовать)
 

AnrDaemon

Продвинутый новичок
Ну, могу и set попробовать, но если get не работет, смысл делать set?
Оказалось, смысл есть. Но то, что аттрибут можно поставить, но нельзя прочитать - это, извините, жирный баг...
 

AnrDaemon

Продвинутый новичок
Третий раз перечитываю статью, и что-то никак не покидает меня ощущение заказанности... Такая вот типичная заказная статейка, как в лучших газетах города.
 

AnrDaemon

Продвинутый новичок
В шесть утра после бессонной ночи? Побойся бога... >.< Мне ещё весь день работать.
Завтра прочитаю.
 

Фанат

oncle terrible
Команда форума
Мне интересно про плагины mysqlnd =) Ну и про эмуляцию prepared в PDO (PS: где @Фанат ?)
Я даже и не знаю, что сказать. К эмуляции у них две претензии, и обе надо ну очень долго сосать из пальца, чтобы они показались имеющими хоть какую-то важность.
 

AnrDaemon

Продвинутый новичок
AnrDaemon, а от оригинала такое же ощущение?
Угу. Один-в-один.
Статья описывает возможности библиотеки, но только со своего краю. Самое интересное - в первом абзаце (и картинке под ним), дальше вода с редкими вкраплениями умеренно-полезной информации общего характера..
 
Сверху