[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Функция для mysql_query
AlmazDelDiablo
Уж не знаю, информативное ли название, но более подходящего названия не нашел для темы smile.gif

Итак. Я попытался написать функцию для автоматического коннекта к базе и создания запроса. Но вот загвоздка. Функция возвращает странные значения (например - цифру 1)

Вот сама нукция:
function l2db_query( $l2_query, $l2_cfg ) {
if( !$db_connect ) {
$db_connect = mysql_connect( $l2_cfg['host'], $l2_cfg['user'], $l2_cfg['pass'] );
$db_select = mysql_select_db( $l2_cfg['dbname'] );
}
if( $db_connect ) {
return mysql_query( $l2_query );
mysql_close( $db_connect );
}
}


Т.е. при использовании функции я буду писать вместо $l2_query свой запрос. По идее в коде выглядень это будет вот так:
$query1 = l2db_query( "SELECT * FROM `characters`", $l2_cfg );


Еще Инвизибл мне сказал, что после return функция не выполняется, т.е. соедение не будет закрыто. Подскажите, как быть?



Спустя 16 минут, 33 секунды (16.10.2010 - 20:11) Invis1ble написал(а):
AlmazDelDiablo
Цитата
For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query returns a resource on success, or false on error.
For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query returns true on success or false on error.

Спустя 6 минут (16.10.2010 - 20:17) Invis1ble написал(а):
Понял причину?

Спустя 1 минута, 18 секунд (16.10.2010 - 20:19) AlmazDelDiablo написал(а):
Ну это я знаю, что он не прямо сразу результат возвращает. Просто когда я по средствам этой функции делал вот так:
$query1 = l2db_query( "SELECT * FROM `characters`", $l2_cfg );
$query1_num = mysql_num_rows( $query1 );

В $query1_num была пустота. Когда же сделал тоже самое, но без функции ( т.е. голый запрос к базе ), в $query1_num была цифра 2, т.е. все сработало.

Спустя 4 минуты, 2 секунды (16.10.2010 - 20:23) twin написал(а):
Ты что, на каждый запрос коннект решил делать?
Передумай.

Спустя 8 минут, 1 секунда (16.10.2010 - 20:31) AlmazDelDiablo написал(а):
Хмм.. если убрать mysql_close(); в конце, то, соот-но функция будет только проверять, есть ли коннект и будет коннектится, если его нет. А закрывать коннект буду по окончании запросов. Так более целесообразно?)

Спустя 6 минут, 42 секунды (16.10.2010 - 20:37) Invis1ble написал(а):
Цитата
В $query1_num была пустота

значит функция false mysql_num_rows false вернула по-ходу..
А вообще twin прав насчет коннекта

Спустя 39 минут, 22 секунды (16.10.2010 - 21:17) AlmazDelDiablo написал(а):
Ну, в общем, фунция рабочая и такой вариант будет целесообразен? Без закрытия соединения.
function l2db_query( $l2_query, $l2_cfg ) {
if( !$db_connect ) {
$db_connect = mysql_connect( $l2_cfg['host'], $l2_cfg['user'], $l2_cfg['pass'] );
$db_select = mysql_select_db( $l2_cfg['dbname'] );
}
if( $db_connect ) {
return mysql_query( $l2_query );
}
}

Спустя 3 часа, 46 минут, 52 секунды (17.10.2010 - 01:04) Админ написал(а):
с точки зрения философии - скажу так - неверным путём идёте товарищ - нет смысла в такой функции.

Спустя 8 часов, 46 минут, 9 секунд (17.10.2010 - 09:50) linker написал(а):
Всеравно бред, каждый раз будет попытка создания соединения, нафига это нужно? Разве сложно один раз создать коннект, а потом только передавать везде как параметр ссылку на соединение?

Спустя 55 минут, 9 секунд (17.10.2010 - 10:45) arvitaly написал(а):
AlmazDelDiablo,

Ваша функция вообще не нужна - она ничем не отличается от просто mysql_query, только добавлены 2 ненужные и неработающие (так как db_connect у вас не существует всегда) проверки

Спустя 2 часа, 38 минут, 36 секунд (17.10.2010 - 13:23) AlmazDelDiablo написал(а):
Ясно, спасибо всем )
Буду по старому кверить smile.gif


_____________
Блог | VK | GitHub | Twitch
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.