?

Log in

VitCOM Photo
WebDev / PHP & MySQL / вышащить из базы одну запись 
29-янв-2010 12:50 pm

Бывают возникают ситуации когда надо вытащить всего одну запись из всей базы данных - самое на мой взгляд элегантное решение

$query="SELECT charity FROM `users` WHERE username='$username'";
$result=mysql_query($query);
$row = mysql_fetch_assoc($result);
echo $row['charity'];


может кто знает что то по лучше?

Comments 
29-янв-2010 11:16 am
лучше пользоваться объектами
по-любому кода меньше будет

$mysqli = new mysqli(...);
$rows = fetchAssoc($mysqli,"SELECT * FROM ...);
echo $rows[0];

fetchAssoc - моя функция аналогичная mysql_fetch_assoc
29-янв-2010 11:49 am
уже если нет объектов, то так будет удобней.

$query="SELECT charity FROM `users` WHERE username='$username'";
(надеюсь, никто не забыл сделать addslashes($username)
$result=mysql_query($query);
list ($charity) = mysql_fetch_row($result);
echo $charity;
29-янв-2010 12:03 pm
цитата из описания функции addslashes на похапе.нет
It's highly recommeneded to use DBMS specific escape function (e.g. mysqli_real_escape_string() for MySQL or pg_escape_string() for PostgreSQL
29-янв-2010 12:06 pm
все зависит от нагрузки на сервер.
по хорошему, надо использовать параметры для запроса.
29-янв-2010 11:59 am
LIMIT 0,1
забыли в конце запроса :)
29-янв-2010 02:08 pm
SELECT COUNT(img_id) AS a FROM(
(SELECT img_id FROM `a_cache`)
UNION ALL
(SELECT img_id FROM `c_cache`)
)t

Да спасиб, в моем случе был немного другой запрос - там лимиты безсмысленно ставить :)
22-май-2010 11:05 pm
Лимиты всегда ставить нужно, особенно при UDPATE или DELETE, для SELECT подойдет LIMIT 1
23-май-2010 03:03 pm
тогда я не узнаю COUNT(img_id) всех записей
15-сент-2010 10:21 pm
О ужас! Не изобретайте велосипед-все легко и просто.
$result=mysql_query("SELECT charity FROM `users` WHERE username='$username'");
$row = mysql_result($result,0);
echo $row;
18-сент-2010 10:04 pm
да, хороший вариант - только mysql_numrows все-же лучше как я понял вставить до вывода mysql_result
This page was loaded май 30 2017, 7:12 am GMT.