Каков наилучший способ выбрать одну строку в MySQL с помощью PHP? - PullRequest
1 голос
/ 14 апреля 2011

У меня есть оператор mysql, который получает только одну запись на основе идентификатора.Я хочу знать, лучше ли использовать mysql_fetch_row или что-то в этом роде, чем использовать что-то вроде mysql_fetch_array, просто для захвата одной строки в базе данных.Я просто хочу убедиться.

Ответы [ 3 ]

5 голосов
/ 14 апреля 2011

Важно отметить, что использование mysql_fetch_array() означает не значительно медленнее, чем использование mysql_fetch_row(), в то время как это обеспечивает значительную добавленную стоимость.

Источник

0 голосов
/ 14 апреля 2011

Две функции почти идентичны, название просто заставляет вас думать, что они разные:

$r=mysql_query('SELECT name,email FROM tbl LIMIT 1');
var_dump(mysql_fetch_assoc($r));
    // array('name'=>[dbName], 'email'=>[dbEmail]);
var_dump(mysql_fetch_row($r));
    // array([dbName], [dbEmail]);
    // It's a normal incremental integer index array
var_dump(mysql_fetch_array($r,MYSQL_ASSOC));
    // same as mysql_fetch_assoc();
var_dump(mysql_fetch_array($r,MYSQL_NUM));
    // same as mysql_fetch_row();
var_dump(mysql_fetch_array($r,MYSQL_BOTH));
    // array(0=>[dbName], 1=>[dbEmail], 'name'=>[dbName], 'email'=>[dbEmail]);

В руководстве также указывается, что обе функции работают хорошо. Местные тесты намекают в том же направлении. Я бы посоветовал вам не беспокоиться о экономии времени и памяти .0001 и найти истинные узкие места в ваших приложениях.

0 голосов
/ 14 апреля 2011

почему бы вам просто не использовать LIMIT 1 внутри оператора mysql и неважно, что у вас будет одна строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...